Data communication method

ABSTRACT

A data communication function table relating to communication functions is shared between devices. Whether a communication device can operate in an autonomous communication mode or request/response communication mode can be therefore determined, the data type can be determined, the data size and data identification information can be acquired, and a file can be divided to an optimum size for transmission. Network traffic is therefore reduced and the effective communication speed is improved for data communication between devices over a network.

BACKGROUND OF THE INVENTION

[0001] 1. Field of the Invention

[0002] The present invention relates to a communication method for data transfers between two communication devices connected over a network.

[0003] 2. Description of the Background Art

[0004] Even if a network connection is established between two communication devices, data communication between the devices is not possible or the transferred data will be invalid unless two conditions are met. First, data sending and receiving between the devices needs to be enabled, second, both devices need to handle the desired data types, data formats, data size, and other parameters. Communication between devices has conventionally been handled with proprietary communication methods defined by the equipment manufacturers. Examples of these communication methods include the device on the data transmission side determining whether it can transmit data or whether it can send the requested data; comparing the types of data that can be sent by the transmission-side device and the types of data that are valid on the reception-side device to determine whether the data types are compatible between the sending and receiving sides; and acquiring the type and size of data that can be transmitted by the transmission-side device and data identification information for communication. Parts of these different methods can be omitted or combined together to build a desirable communication system and method for executing a specific communication sequence. This is described, for example, in Japanese Patent Laid-Open Publication (kokai) H9-244942.

[0005] When data communication is attempted using various combinations of data types, formats, and size, communication traffic increases and the data transmission rate decreases due to the increased traffic resulting from sending and receiving invalid data and the communication devices sending data back and forth to report and confirm the communication format.

[0006] Furthermore, when data is communicated according to a defined communication sequence between the same communication devices over plural occasions, previously communicated information must be exchanged again, thus increasing the transmitted data (traffic) and lowering the data transmission rate.

[0007] In a communication environment in which a large file, for example, must be divided for sending and receiving, how files are divided, the size of each divided data, and other parameters are individually defined by application vendor with the above-described communication techniques, and devices running different applications cannot communicate with each other.

SUMMARY OF THE INVENTION

[0008] A data communication method according to an exemplary embodiment of the present invention is useful for data communication between two communication devices connected to a network. A data communication function table for storing functions relating to data communication and a data communication control unit are disposed in memory in the communication devices, and data communication between the communication devices is accomplished by the data communication control unit writing and reading to the data communication function table. This method effectively reduces network traffic because it is not necessary to send the same data. Furthermore, because data communication is completed in less time, this data communication method has from the perspective of the communication devices the same effect as increasing the data communication rate.

[0009] By sharing a function table related to communication, a data communication method according to an exemplary embodiment of the present invention as described above makes it possible to identify communication devices capable of data communication by means of autonomous communication or request/response communication, identify the type of transmitted data, get the data size and various data identification information, and divide the data to an optimal size for communication, and can thereby reduce traffic and effectively increase data communication throughput.

[0010] The data communication function table could contain codes indicating the types of data that can be transmitted or the types of data that can be received. Network traffic can be reduced by eliminating requests for data that cannot be transmitted and transmissions of data that cannot be received or is invalid.

[0011] These data communication function tables could contain a field indicating whether a communication device has an autonomous communication function or a request/response communication function. Network traffic can be reduced by sending data only to communication devices that can operate in an autonomous communication mode, or sending data only to communication devices that can respond to request/response communication requests.

[0012] Furthermore, the data communication function table could have a field denoting a divisional size enabling maximum data communication efficiency. This enables data communication at the communication rate that is most efficient for a network configured from a desired communication media.

[0013] The communication device stores the data communication function table for storing functions related to data communication in memory, and has a data communication controller for communicating data with other communication devices by writing and reading the data communication function table.

[0014] The data communication function table contains at least one of the following: autonomous transmission data type, autonomous reception data type, response transmission data type, and request reception data type.

[0015] The data communication function table also stores at least one of the following: transmission data description, data transfer status, data unit count per data type, divisional data count, and transfer data.

[0016] The data communication function table of the destination device stores at least one of the following: autonomous transmission data type, autonomous reception data type, response transmission data type, request reception data type, transmission data description, data transfer status, data unit count per data type, divisional data count, and transfer data.

[0017] The transmission-side and reception-side devices can also share this information. By sharing information it is not necessary to send the same data again, and network traffic can therefore be reduced. Because less data communication time is needed, the effect for each communication device is the same as increasing the data communication rate.

[0018] The communication device stores the data communication function table for storing functions related to data communication in memory, and has a data communication controller for communicating data with other communication devices by writing and reading the data communication function table.

[0019] The data communication function table contains at least one of the following: autonomous transmission data type, autonomous reception data type, response transmission data type, and request reception data type.

[0020] The data communication function table of the destination device stores at least one of the following: autonomous transmission data type, autonomous reception data type, response transmission data type, and request reception data type.

[0021] The transmission-side and reception-side devices can also share this information. By sharing information it is not necessary to send the same data again, and network traffic can therefore be reduced. Because less data communication time is needed, the effect for each communication device is the same as increasing the data communication rate.

[0022] An exemplary embodiment of the present invention also provides a data communication method recording medium for storing a program enabling a computer to execute the data communication method of the invention. This program can be recorded to any computer-readable medium.

[0023] An exemplary embodiment of the present invention can also be provided as a computer-executable program enabling a computer to execute the data communication method of the invention.

[0024] The communication device stores the data communication function table for storing functions related to data communication in memory, and has a data communication controller for communicating data with other communication devices by writing and reading the data communication function table.

[0025] The data communication function table contains at least one of the following: autonomous transmission data type, autonomous reception data type, response transmission data type, and request reception data type.

[0026] The data communication function table also stores at least one of the following: transmission data description, data transfer status, data unit count per data type, divisional data count, and transfer data.

[0027] The data communication function table of the destination device stores at least one of the following: autonomous transmission data type, autonomous reception data type, response transmission data type, request reception data type, transmission data description, data transfer status, data unit count per data type, divisional data count, and transfer data.

[0028] The transmission-side and reception-side devices can also share this information.

[0029] The communication device stores the data communication function table for storing functions related to data communication in memory, and has a data communication controller for communicating data with other communication devices by writing and reading the data communication function table.

[0030] The data communication function table contains at least one of the following: autonomous transmission data type, autonomous reception data type, response transmission data type, and request reception data type.

[0031] The data communication function table of the destination device stores at least one of the following: autonomous transmission data type, autonomous reception data type, response transmission data type, and request reception data type.

[0032] The transmission-side and reception-side devices can also share this information.

[0033] Other objects and attainments together with a fuller understanding of the invention will become apparent and appreciated by referring to the following description and claims taken in conjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

[0034] This and other objects and features of the present invention will become clear from the subsequent description of a preferred embodiment thereof made with reference to the accompanying drawings in which like parts are designated by like reference numerals and in which.

[0035]FIG. 1 shows the configuration of a communication system for sending and receiving data based on a communication method according to an exemplary embodiment of the present invention;

[0036]FIG. 2 shows the data communication function tables of the air conditioner controller before data communication;

[0037]FIG. 3 shows an example of the transmitted data signal;

[0038]FIG. 4 shows the data communication function tables of the air conditioner and controller after data communication;

[0039]FIG. 5 shows the data communication function tables of the lighting fixture and controller before data communication;

[0040]FIG. 6 shows the data communication function tables of the lighting fixture and controller after data communication;

[0041]FIG. 7 shows the data communication function tables of the controller and microwave oven before data communication;

[0042]FIG. 8 shows the data communication function tables of the controller and microwave oven after data communication;

[0043]FIG. 9 and FIG. 10 show properties related to data transmission services;

[0044]FIG. 11 shows properties related to data reception services;

[0045]FIG. 12 shows a typical autonomous communication sequence;

[0046]FIG. 13 shows sample messages used in an autonomous communication sequence;

[0047]FIG. 14 shows a typical request/response communication sequence;

[0048]FIG. 15 shows sample messages used in a request/response communication sequence;

[0049]FIG. 16 shows sample messages used in a request/response communication sequence;

[0050]FIG. 17 shows another data communication function table before data communication;

[0051]FIG. 18 shows another data communication function table after data communication;

[0052]FIG. 19 shows a communication device transmission function table and a controller reception function table;

[0053]FIG. 20 to data communication controller 22 show properties related to data reception services;

[0054]FIGS. 23 and 24 show typical node startup sequences related to data communication;

[0055]FIG. 25 shows a typical autonomous communication sequence;

[0056]FIG. 26 shows a typical request/response communication sequence;

[0057]FIG. 27 shows properties related to a data reception service;

[0058]FIG. 28 and FIG. 29 show properties related to data transfer services;

[0059]FIG. 30 and FIG. 31 show typical node startup sequences related to data communication;

[0060]FIG. 32 shows a typical autonomous communication sequence;

[0061]FIG. 33 shows a typical request/response communication sequence;

[0062]FIG. 34 shows properties related to a data reception service;

[0063]FIG. 35 and FIG. 36 show properties related to data transfer services;

[0064]FIG. 37 and FIG. 38 show typical node startup sequences related to data communication;

[0065]FIG. 39 shows an exemplary autonomous communication sequence;

[0066]FIG. 40 shows a typical request/response communication sequence;

[0067]FIG. 41 and FIG. 42 show messages used in an autonomous communication sequence;

[0068]FIG. 43 and FIG. 44 show messages used in a request/response communication sequence;

[0069]FIG. 45 shows the format of a PUSH type reception object information;

[0070]FIG. 46 shows the format of a PULL type transmission object information;

[0071]FIG. 47 shows the format of transmission target information;

[0072]FIG. 48 shows the format of transmission file information;

[0073]FIG. 49 shows the format of transmission data; and

[0074]FIG. 50 shows the configuration of a communication system 100 for sending and receiving data based on the communication method of an exemplary embodiment of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0075] Preferred embodiments of the present invention are described below with reference to the accompanying figures. A basic concept of the present invention is described first below.

[0076]FIG. 50 shows the configuration of a communication system 100 for sending and receiving data based on a communication method according to an exemplary embodiment of the present invention. This communication system 100 includes two communication devices 1 and 2 connected via a network 3.

[0077] As an example of a communication system 100 according to an exemplary embodiment of the present invention, a local area network in the home (“home LAN”) for interconnecting home appliances so that they can communicate with each other is used herein. The communication devices 1 and 2 are appliances having basically the same communication functions and configuration. An air conditioning system, refrigerator, microwave oven, and exterior security cameras are exemplary of such appliances. The electrical lines used to supply power to the appliances are used for the network 3. By using the electrical lines for the network 3, the communication rate of the network 3 is relatively slow at a maximum 9600 bps typically. A wireless network with an even slower communication rate of a maximum 2400 bps, for example, could also be used in place of this home LAN. In either case, however, no new wiring is required to construct the network 3. It will also be obvious that the network 3 could be a normal communication network.

[0078] It is assumed in the following description that communication device 1 sends a data file to communication device 2, and communication device 2 processes the received file. For example, if the communication device 1 is a security camera for monitoring visitors and communication device 2 is a control terminal (simply a controller below) with a monitor, then an image data file captured by the security camera is sent from communication device 1 over the network 3 to communication device 2 for display on the controller's monitor.

[0079] It should be noted that “data file” is also used herein with reference to data communicated without having a filename assigned thereto.

[0080] This communication device 1 has application software 101, service middleware 102, a service API (Application Programming Interface) 103, basic API 104-1 and 104-2, communication processor (communication middleware) 105, service object 107, low-level communication software 108, and common low-level communication interface 109. As will be apparent from the “software” labels used here, the configuration of the communication device 1 shown in FIG. 50 is a conceptual model of communication function layers in the communication device 1. A block diagram of a corresponding physical configuration is described further below with reference to FIG. 1.

[0081] One of important feature of the exemplary embodiment of the present invention is that service middleware 102 and service object 107 are disposed to both communication devices 1 and 2 of the communication system 100, and a uniform procedure is followed for communication. Because different functions are required in the communication device 1 on the data file transmission-side and in the communication device 2 on the side receiving the data file, the specific content of the service middleware 102 and service object 107 is also different on the sending and receiving sides. However, by predefining the data required to receive the data file and following a defined procedure for communication, communication data can be posted and confirmed and an efficient communication system can be achieved. Valid data and the device with which data is to be communicated can thus be easily determined. Sufficient practical utility can thus be assured even on a network 3 with a relatively slow data transmission rate.

[0082] The application software 101 is a program for running major processes on the communication devices. In the case of communication device 1 the application software 101 is a program for capturing and encoding images with the exterior security camera. For communication device 2 it is a program for decoding and displaying the received images. The application software 101 can be a single program or it could be a set of multiple programs each performing specific processes.

[0083] The service middleware 102 is a program for handling the shared basic operations of the application software 101. More specifically, the service middleware 102 handles sending and receiving relatively large data files, that is, managing the data file transmission sequence and reassembling (decoding) received divisional data files. The service middleware 102 is part of a specific application program. The service middleware 102 therefore uses basic API 104-2 when using the functions of the communication middleware 105 in internal processes. From the perspective of the communication middleware 105, the service middleware 102 therefore operates as application software 101.

[0084] Using the service middleware 102 to define shared processes makes application development easier, enables software vendors to focus on developing the essential functions and performance of the system and devices, and therefore makes it possible to provide system peripherals and devices that are more beneficial for the user. This service middleware 102 is therefore described more fully below.

[0085] The service API 103 is an API for accessing the service middleware 102 from the application software 101. The service API 103 is provided by the service middleware 102. By using the service API 103, the application software 101 can pass requests to the service middleware 102, or the application software 101 can receive process results from the service middleware 102.

[0086] An application programming interface (API) generally refers to an interface enabling an application to call specific functions provided by the OS. API specifications are generally publicly available so that the API can be used as a tool enabling efficient application development.

[0087] Basic API 104-1 and 104-2 are interfaces used for the application software 101 to exchange data files with the communication middleware 105. Because the service middleware 102 is part of the application program from the perspective of the communication middleware 105, the basic APIs are shared by both. For easier understanding, however, basic API 104-1 is used to communicate with the application software 101, and basic API 104-2 is used to communicate with the service middleware 102.

[0088] The communication middleware 105 runs the communication process for sending and receiving data files using device object 106 and service object 107. More specifically, the communication middleware 105 runs frame processes for interpreting messages received over the network 3, processes determined by the properties of the service object 107, and writing to and reading from the service object 107. These data files include files received from the application software 101 and/or service middleware 102, and files received from the network 3.

[0089] The device object 106 part of the communication middleware 105 is described next. A device object 106 defines various parameters related to a particular device. Parameters of the device object 106 include the device's network class, properties, and property values. If the device is a camera, for example, the device object 106 defines the ID number identifying a particular camera, a flag indicating the current operation status of the camera, the camera's shutter speed, lens aperture, and exposure parameters, and where captured images are stored. Based on the class and the instance, a memory area of the device object 106 is specified to retrieve information.

[0090] The service object 107 is an object model describing the functions and settings of service middleware 102 available to the network. More specifically, the service object 107 is an object model of class specifications defining the specific functions, services, and properties of the service middleware 102. The purpose of defining the service object 107 is to efficiently construct a system by accessing the service middleware 102 over the network 3. The service object 107 defines a code denoting the types of data files that can be sent and received, and flags denoting an autonomous communication function or request/response communication function. Examples of specific configurations of the service object 107 are shown in the function tables in FIGS. 2 to 8 and FIGS. 17 to 19, and are described more fully in the embodiments below.

[0091] The low-level communication software 108 runs a process enabling access to the network 3. More specifically, the low-level communication software 108 absorbs differences between protocols of various transmission medium to receive/send data from/to common low-level communication interface 109 commonly defined. The common low-level communication interface 109 mediates data file transmission. Conversely, when a data file to be sent to the network 3 is received from the communication middleware 105, the low-level communication software 108 receives the data file through the common low-level communication interface 109 and sends the data file over the network 3 using a specific protocol.

[0092] The configuration of the communication device 1 with respect to its communication functions is described above. The basic configuration of communication device 2 is substantially identical to communication device 1, except that because it functions as a controller it must also communicate with devices other than communication device 1. This means that communication device 2 may have multiple service objects 117, one for each device it communicates with.

[0093] The service middleware 102, which is an important feature of an exemplary embodiment of the present invention, is next described in detail. The service middleware 102 supports file transfers for sending and receiving data files over a network 3 with a relatively small transmission capacity. This file transfer process is called a “file transfer service.”

[0094] The data file transmission sequence managed by the service middleware 102 can be divided into two major parts. First is the communication sequence whereby the communication device 1 autonomously sends a data file. This type of communication is referred to as “autonomous communication” or “PUSH type data communication.” More specifically, this communication sequence is used when a camera (communication device 1) autonomously sends an image data file to the controller (communication device 2).

[0095] Second is a sequence whereby communication device 2 asks communication device 1 to send a data file, and communication device 1 sends the requested data file in response. This type of communication is called “request/response communication” or “PULL type data communication.” A specific example of this sequence is when the user wants to see the image captured by the camera (communication device 1) and operates the controller (communication device 2) to request the image data file from the camera (communication device 1). The camera (communication device 1) receiving the request then captures an image and sends the image data file to the controller (communication device 2).

[0096] Both of these communication sequences are further described in detaile in the embodiments below.

[0097] The service middleware 102 divides data files based on the transmission capacity of the network 3 and the data size that can be handled in a single communication by the destination communication device 2. The service middleware 102 of the camera (communication device 1) may detect the current transmission capacity of the network 3 based on information from the low-level communication software 108 when the power turns on. When the destination communication device 2 is identified, it also gets the data size that can be handled in a single communication by the destination communication device 2 by polling a service object 117 of the communication device 2. If the data file to be sent is larger than the indicated data size, the data file is divided and sent in blocks that are a size within the transmission capacity of the network 3.

[0098] Assume that the data size that can be sent and received at one time on the network 3 is a maximum 131 bytes, and the size of image data captured by the camera is 5k bytes (approximately 5000 bytes). In this case the service middleware 102 of the camera considers the size of data that can be handled by the controller (communication device 2) and divides the image data into 131 byte blocks for transmission to the controller (communication device 2). The service middleware 102 sets the data division information required for sending data in the service object 107. This data division information includes the size of the data blocks that can be handled in a single communication by the camera (communication device 1) on the data transmission side. Other information contained in the service object 107 includes a unique ID, the order and the number identifying each of the divided image data.

[0099] The controller (communication device 2) on the receiving side receives each of the divided image data. The service middleware 112 of the communication device 2 polls the service object 107 of the camera (communication device 1) to confirm whether all of the divided data were received. If not, the service middleware 112 asks the camera (communication device 1) to resend the remaining divided data. If all the divided data were received, the service middleware 112 reassembles the divided data based on the data division information set in the service object 107 of the camera (communication device 1) to get the image data file. The service middleware 112 supplies the image data file through the service API 113 in response to a request from the application program 111.

[0100] Service objects 107 and 117 as they relate to the above-noted file transfer service are described in further detail below.

[0101] In order to transmit data files the transmission-side communication device 1 has a service object 107 relating to sending files (i.e., a file transmission service object 107). The reception-side communication device 2 has a service object 117 relating to receiving files (i.e., file reception service object 117). Both file transmission and file reception service objects store the properties required for the file transfer method (i.e., PUSH or PULL type transfers). These properties are respective expressions on attributes and functions of the service itself, such as operational condition, transmission condition, and transmitted content of the file transfer service.

[0102] The file transmission service object 107 posts the transmission settings, transmission conditions, and transmission content. The specific content is shown in FIG. 21, FIG. 22, FIG. 35 and FIG. 36.

[0103] The file reception service object 117 is the object for receiving data files. The specific content of this service object 117 is shown in FIG. 20 and FIG. 34.

[0104] It should be noted that the object data for push transmission/reception describes the types of data that can be sent and received in the PUSH mode, and the object data for PULL type transmission/reception describes the types of data that can be sent and received in the PULL type.

[0105] (Embodiment 1)

[0106]FIG. 1 shows the configuration of a communication system 100 for sending and receiving data based on a communication method according to the present invention. Similarly to the configuration shown in FIG. 50, this communication system 100 has a communication device 1 and another communication device 2 connected via a network 3.

[0107] Communication device 1 has a central processing unit (CPU) 10, memory 11, data communication controller 12, memory manager 13, and network controller 14.

[0108] The CPU 10 handles overall control of operations of communication device 1. The other components (i.e., memory 11, data communication controller 12, memory manager 13, and network controller 14) operate at appropriate timing as controlled by the CPU 10 to perform various processes.

[0109] A data communication function table 15 is stored in memory 11. The data communication function table 15 stores information defining data communication functions and information relating to communication procedures. The memory 11 also stores the software programs run on the communication device 1, that is, the application software 101 and service middleware 102. The memory 11 also stores middleware (not shown in the figure) for operating the communication middleware 105.

[0110] The data communication controller 12 has a table sharing controller 16 and controls the table sharing process described further below.

[0111] The memory manager 13 has a table reading unit 17, table writing unit 18, and table sharing processor 19, and based on the content of the data communication function table 15 runs a sharing process with another communication device 2.

[0112] The network controller 14 controls communications with other communication devices.

[0113] Communications device 2 could also be configured identically to communication device 1. In the embodiment shown in FIG. 1 the communication device 2 has a CPU 20, memory 21, data communication controller 22, memory manager 23, and network controller 24. Data communication function table 25, application program 111, and service middleware 112 are stored in memory 21. It should be noted that while the components of the communication device 2 are identified by different reference numerals, parts having the same name in communication device 1 and communication device 2 have the same configuration and function. Further description of the individual components of the communication device 2 is therefore omitted below.

[0114] Referring again to FIG. 50, the correlation between elements in the model communication device 1 shown in FIG. 50 and specific elements shown in FIG. 1 is described next.

[0115] The application software 101 and service middleware 102 are stored to memory 11 as shown in FIG. 1. The service middleware 102 is read from memory 11 (FIG. 1) and run by the CPU 10 (FIG. 1). Based on the instructions in service middleware 102, the CPU 10 accesses the device object 106 and service object 107 stored to memory 11 (FIG. 1) and runs the processes. The application software 101 is also read from memory 11 (FIG. 1) and run by the CPU 10 (FIG. 1). When processing the application software 101, the CPU 10 uses the process results from the service middleware 102 by way of the service API 103, or sends requests to the service middleware 102, based on the instructions of the application software 101.

[0116] The device object 106 and service object 107 correspond to the data communication function table 15 (FIG. 1), and are both stored in a table format.

[0117] The communication middleware 105 is stored to memory 11 (FIG. 1). Based on middleware (not shown in the figure) for managing communication by the communication device 1, CPU 10 controls operation of the data communication controller 12 (FIG. 1) and memory manager 13 (FIG. 1) while appropriately accessing the data communication function table 15 (FIG. 1) in memory 11.

[0118] The low-level communication software 108 and common low-level communication interface 109 correspond to the network controller 14 (FIG. 1). The network controller 14 (FIG. 1) is a communication module such as an interface card or board having an RS-232C or other serial interface. The low-level communication software 108 is stored in memory (such as EEPROM) in the communication module and is run by a separate CPU on the module to communicate according to a specific protocol.

[0119] The correlation between elements in FIG. 50 and FIG. 1 for communication device 2 is the same as for communication device 1. This means that the device objects and service objects of the communication device 2 correspond to the data communication function table 25 (FIG. 1). Note, however, that the data communication function table 15 in communication device 1 and the data communication function table 25 in communication device 2 store different device objects and service objects. If communication device 1 is a node on the data transmission side and communication device 2 is a node on the data receiving side, the service object 107 of the communication device 1 (FIG. 50) is a file transmission service object, and the service object 117 of communication device 2 is a file reception service object.

[0120] Data communication by the present embodiment is described next referring first to an autonomous data transfer from a terminal device to the controller. In this example the communication device 1 connected to the network is assumed to be an air conditioner with an autonomous transmission function, and the other communication device 2 is a controller with a function for receiving autonomous transmissions, i.e., an autonomous reception function, for centrally controlling equipment such as an air conditioner. Communication through such autonomous transmission and autonomous reception is referred to herein as “autonomous communication.”

[0121] When a network connection is established or data communication is to start, the data communication controller 12 of the air conditioner 1 sends a command to confirm whether or not the other (destination) communication device is a device with a data communication function table. This confirmation is accomplished by sending a predefined communication message to the destination device and getting a response from the destination device.

[0122] When confirming whether the device has a data communication function table or not it is also possible to determine if the destination device has an autonomous reception function by querying specific information in the data communication function table.

[0123] This confirmation could be done between the controller 2 and each of the connected devices either before data communication or at some regular interval.

[0124] Furthermore, by querying specific information in the data communication function table of the destination communication device, the controller 2 can detect whether a particular device has an autonomous transmission function.

[0125]FIG. 2 shows the data communication function table 15 of the air conditioner 1 and the data communication function table 25 of the controller 2 before data communication. FIG. 3 shows an example of the transmitted data signal, and FIG. 4 shows the data communication function tables 15 and 25 of the air conditioner 1 and controller 2, respectively, after data communication ends.

[0126] The following information is stored in the data communication function table 201 of the air conditioner 1 before data communication, that is, before the fields are filled.

[0127] The autonomous transmission data type 211 is a value denoting the types of data that can be autonomously transmitted by the air conditioner 1. There are two types in this embodiment, CSV meaning table format data, and TXT meaning text data.

[0128] The autonomous reception-side data type 214 denotes the data types that can be handled by the destination device receiving the autonomous transmission. This field is initially blank because the capabilities of the destination device are unknown.

[0129] The transmission data description 212 is the data format as shown in FIG. 3 that is used when the air conditioner 1 autonomously transmits data. As shown in FIG. 3 this includes the data type, data title, date, and size. This field is also initially blank.

[0130] The data transfer status 213 indicates whether transmission is in progress, and is initially set to NOT-SENDING.

[0131] The data division information 215 denotes the size of divided data that can be handled by the autonomous reception side, and is initially unknown and therefore undeclared.

[0132] The transmission data 216 is the data that is actually sent. This field is also initially blank.

[0133] The following information is initially stored to the data communication function table 202 of the controller 2.

[0134] The autonomous reception data type 224 is a value denoting the type of data that can be handled by the controller 2 receiving an autonomous transmission, and is initially set to TXT.

[0135] The transmission data description 222 is the data format as shown in FIG. 3 that is used when the air conditioner 1 autonomously transmits data. As shown in FIG. 3 this includes the data type, data title, date, and size. This field is also initially blank because the message format that will be received is unknown.

[0136] The data transfer status 223 indicates whether transmission is in progress, and is initially set to NOT-SENDING.

[0137] The data division information 225 denotes the size of divided data that can be handled by the autonomous reception side, that is, by the controller 2, and is set to 1024.

[0138] The transmission data 226 stores the received data and is initially blank because no data has been transmitted (received).

[0139] The air conditioner 1 confirms whether the controller 2 is a communication device that could be a destination device for autonomous transmissions as follows.

[0140] The table sharing controller 16 of the air conditioner 1 sends a command to share the autonomous reception-side data type 214 data to the table sharing processor 19. The table sharing processor 19 receiving the command instructs the network controller 14 to send to a message for sharing the autonomous reception-side data type to a communication device, in this example the controller 2, that has already been confirmed to be configured with a data communication function table.

[0141] The controller 2 that received the message sends the received information from the network controller 24 to the table sharing processor 29. The table sharing processor 29 reads the data communication function table 25 by means of the table value reader 27, that is, reads the TXT value in the autonomous reception data type 224 field of the data communication function table 202 shown in FIG. 2, and returns it to the table sharing processor 29. The table sharing processor 29 then instructs the network controller 24 to send the read value (TXT) to the device from which the query message was received.

[0142] When the air conditioner 1 gets this response it sends the information from the network controller 14 to the table sharing processor 19. The table sharing processor 19 then instructs the table writing unit 18 to write the acquired value to the data communication function table 15. The value TXT is thus written to the autonomous reception-side data type 214 field of the data communication function table 15 in the air conditioner 1 as shown in field 414 in FIG. 4 so that the same value is recorded in the data communication function tables of the sending and receiving devices.

[0143] The table sharing processor 19 of the air conditioner 1 then notifies the data communication controller 12 that the autonomous reception-side data type 214 is set to the same value as the autonomous reception data type 224 of the autonomous reception-side device. The data communication controller 12 then compares the TXT value written to the autonomous reception-side data type 214 with the values (CSV and TXT) in the autonomous transmission data type 211 field, and thus knows that transmission is possible because there is a matching data type. If there is not a matching data type, the air conditioner 1 knows that an autonomous transmission cannot be addressed to the queried destination device. If a value denoting “all types” is written to the autonomous reception data type 224 in the data communication function table 25 of the controller 2, the air conditioner 1 knows that all data types recorded in its autonomous transmission data type 211 field can be transmitted.

[0144] In order to autonomously transmit data, the data communication controller 12 of the air conditioner 1 sets the value of the data transfer status 213 in the data communication function table 15 to SENDING as shown in field 413 in FIG. 4 by issuing a command to the table reading unit 17. It then issues another command to the table reading unit 17 to set the transmission data description 212 in the data communication function table 15 to the most recent values, that is, the data type 301, data title 302, date 303, and byte size 304, as shown in FIG. 3. This transmission data description 212 is for reporting the format of the data to be transmitted to the autonomous reception side. The transmission data 216, i.e., the data to be sent, is also updated to the most recent data. These settings are indicated in fields 412 and 416 in FIG. 4.

[0145] The data communication controller 12 then shares the transmission data description 212 using the table sharing controller 16. More specifically, the table sharing processor 19 tells the table reading unit 17 to read the set transmission data description 412, passes it to the network controller 14, and sends it to the controller 2. The table sharing processor 29 of the controller 2 that received the transmission data description 412 then writes the transmission data description 412 to the transmission data description 422 in the data communication function table 25 by way of the table writing unit 28.

[0146] The data communication controller 22 is then informed that the transmission data description has been shared. The data communication controller 22 then determines if data can be received from the data type and block size in the description in the transmission data format, and if it can set the data transfer status 423 of the data communication function table 25 to SENDING by means of the table writing unit 28. The table sharing controller 26 of the data communication controller 22 then instructs the table sharing processor 29 to read the data division information 425 from the data communication function table 25, and sends the retrieved divided size (1024 in this embodiment) from the network controller 24 to the air conditioner 1.

[0147] The air conditioner 1 then stores the received data division information 425 (1024) to the data division information 415 field of the data communication function table 15 and thus shares the same value with the controller 2.

[0148] This completes preparations for autonomous data transmission. The data communication controller 12 therefore instructs the table sharing controller 16 to share the transmission data 216 (416) in the data communication function table 15. More specifically, it divides the transmission data 216 (416) into 1024-byte blocks and autonomously sends the data from the air conditioner 1 to the controller 2. The controller 2 then writes the data received from the air conditioner 1 to the transmission data 226 (426) field in the data communication function table 25 on the controller 2 side.

[0149] Finally, when the data communication controllers 12, 22 of the air conditioner 1 and controller 2, respectively, determine that sharing the transmission data is completed, the data transfer status 413, 423 is rewritten to STANDBY, NOT-SENDING, or UNDECLARED to restore the state shown in fields 213, 223. The shared values set to fields other than the data transfer status field are kept. Further communication to share the same information is therefore unnecessary.

[0150] It should be noted that the data division information 225 could be sent simultaneously to or immediately after sending the autonomous reception data type 224.

[0151] (Embodiment 2)

[0152] Request/response communication in which the controller asks a terminal device to send data is described as a second embodiment of the present invention. This embodiment considers data communication between a lighting fixture and a controller for centrally controlling the lighting fixture and other devices. The configuration shown in FIG. 1 and described above can also be used in this embodiment. In this embodiment the communication device 1 shown in FIG. 1 is a lighting fixture 1, and communication device 2 is the controller 2. In this example the controller 2 requests a data transmission from the lighting fixture 1, the lighting fixture 1 responds, and the controller 2 receives the response. This data communication mode is referred to herein as “request/response communication.”

[0153]FIG. 5 shows the data communication function tables 15 and 25 of the lighting fixture 1 and controller 2 before data communication, and FIG. 6 shows the tables 15 and 25 just before data communication is completed.

[0154] As shown in table 501 in FIG. 5, the data communication function table 15 of the lighting fixture 1 initially stores the following information.

[0155] The response transmission data type 511 stores a value indicating the type of data that the lighting fixture 1 can transmit. In this embodiment the lighting fixture 1 can transmit CSV data, meaning data in a table format.

[0156] The transmission data description 512 is the data format as shown in FIG. 3 that is used when the lighting fixture 1 sends a data response. As shown in FIG. 3 this includes the data type, data title, date, and size. This field is initially blank.

[0157] The data transfer status 513 indicates whether transmission is in progress, and is initially set to NOT-SENDING.

[0158] The data division information 515 denotes the size of divided data that can be handled by the request reception side (i.e., the side that requested the data), and is initially unknown and therefore undeclared.

[0159] The transmission data 516 is the data that is actually sent. This field is also initially blank.

[0160] The data count per type 517 field declares the number of units of each data type (CSV or TXT) that is transmitted. The unit could be a file or other unit of data. Note that in this embodiment the response transmission data type 511 is initially set to CSV and the data count per type 517 is set to 1 as shown in FIG. 5.

[0161] As shown in table 502 in FIG. 5, the data communication function table 25 of the controller 2 initially stores the following information.

[0162] The response transmission data type 521 stores a value indicating the type of data sent by the responding device (i.e., the device transmitting a response to a received request). This data type is initially unknown and the response transmission data type 521 is therefore undeclared.

[0163] The transmission data description 522 is the data format as shown in FIG. 3 that is used when the responding device, i.e., lighting fixture 1 in this embodiment, transmits data. As shown in FIG. 3 this includes the data type, data title, date, and size. This field is also initially blank because the message format that will be received is unknown.

[0164] The data transfer status 523 indicates whether transmission is in progress, and is initially set to NOT-SENDING.

[0165] The data division information 525 denotes the size of divided data that can be handled by the reception side, that is, by the device (controller) 2 that sent the request and receives the response, and is set to 1024 in this embodiment.

[0166] The transmission data 526 field is where the requested data is stored and is initially blank because no data has been transmitted by (received from) the responding terminal.

[0167] The data count per type 527 field declares the number of units of each data type (CSV or TXT) that is transmitted. This value is initially unknown and the field is therefore blank.

[0168] The request reception-side data type 524 is a value denoting the type of data that can be handled by the controller 2. As shown in the function table 502, the controller 2 can receive both CSV and TXT data types in this embodiment.

[0169] Data communication in this embodiment of the invention is described next.

[0170] When a network connection is established or data communication is to begin, the data communication controller 12 of the controller 2 first sends a command to confirm if the destination communication device is a device with a data communication function table as described above. This confirmation is accomplished by sending a predefined communication message to the destination device and getting a response from the destination device.

[0171] When confirming whether the device has a data communication function table or not it is also possible to determine if the destination device is a device with a response transmission function by querying specific information in the data communication function table.

[0172] This confirmation could be done between lighting fixture 1 and each of the connected devices either before data communication or at some regular interval.

[0173] The lighting fixture 1 can also confirm if the requesting device has a request reception function by querying specific information in the data communication function table of the destination communication device.

[0174] When a network connection is established or data communication is to begin, the controller 2 having a transmission request function determines whether transmission can be requested from the communication device by means of a command from the data communication controller 22 as follows.

[0175] Using the table sharing controller 26 of the data communication controller 22, the controller 2 copies the response transmission data type 511, which is set to CSV, from the function table 501 shown in FIG. 5 in the data communication function table 15 of the lighting fixture 1 to the response transmission data type 521 in the data communication function table 25 of the controller 2. To do this the table sharing processor 29 instructs the network controller 24 to create and send to the lighting fixture 1 a message requesting response transmission type data.

[0176] The network controller 14 of the lighting fixture 1 interprets the received message, and passes the requested content to the table sharing processor 19. The table sharing processor 19 gets the value of the response transmission data type 511, i.e., CSV, through the table reading unit 17, stores it to the response message and returns it to the controller 2 by means of the network controller 14, that is, responds to the request. The controller 2 gets the value of the response transmission data type 511 (CSV) from the received response message, and writes it to the data communication function table 25 as the response transmission data type 621 shown in FIG. 6. The table sharing controller 26 of the controller 2 then compares the written response transmission data type (CSV) with the request reception-side data type 524 values CSV and TXT. Because there is a matching data type, the table sharing controller 26 knows the response transmission can be received. If a matching data type is not detected, the request response cannot be received.

[0177] To get information about the requestable data types, the table sharing controller 26 of controller 2 requests sharing the data count per type 517 information, and sets the value (i.e., 1) of the data count per type 517 as the data count per type 527 value in the data count per type 527 field of the controller 2. This information can be shared using a message exchange similar to that for writing the response transmission data type 511, 521 to fields 611, 621. Because the data count is 1, the number of data units that can be requested is 1.

[0178] To request data, the table sharing controller 26 of the controller 2 sets the data transfer status 523 in the data communication function table 25 to SENDING as shown in field 623, FIG. 6, and then sets the data transfer status 613 of the lighting fixture 1 to SENDING. Sharing this value can also be accomplished with a message exchange as described above. This assembles the information needed to set the newest values 616, 612 to the transmission data 516 and transmission data description 512 fields in the data communication function table 15 of the lighting fixture 1.

[0179] The same procedure described in the first embodiment above can thereafter be used to send data from the lighting fixture 1 to the controller 2.

[0180] Once the data communication controllers 12, 22 of the lighting fixture 1 and controller 2 determine that sharing the transmission data 616, 626 has been completed, the data transfer status 613, 623 fields are set to COMPLETED. The shared values set to fields other than the data transfer status field are kept. Further communication to share the same information is therefore unnecessary.

[0181] (Embodiment 3)

[0182] Request/response communication in which a terminal device asks a controller to send data is described as a third embodiment of the present invention. In this embodiment communication device 1 shown in FIG. 1 is a controller 1 for centrally controlling a group of terminal devices, and communication device 2 is a microwave oven 2.

[0183]FIG. 7 shows the data communication function tables 15 and 25 of the controller 1 and microwave oven 2 before data communication, and FIG. 8 shows the tables 15 and 25 just before data communication is completed.

[0184] As shown in table 701 in FIG. 7, the data communication function table 15 of the controller 1 initially stores the following information.

[0185] The response transmission data type 711 stores a value indicating the type of data that the controller 1 can transmit. In this embodiment the controller 1 can transmit HTM and TXT data types, respectively denoting HTML data and text data.

[0186] The transmission data description 712 is the data format as shown in FIG. 3 that is used when the controller 1 sends a data response. As shown in FIG. 3 this includes the data type, data title, date, and size. The transmission data description shown in FIG. 3 is stored for each data type (HTM and TXT) that the controller 1 can return.

[0187] The data transfer status 713 indicates whether transmission is in progress, and is initially set to NOT-SENDING.

[0188] The data division information 715 denotes the size of divided data that can be handled by the request reception side (i.e., the side that requested the data), and is initially unknown and therefore undeclared.

[0189] The transmission data 716 is the data that is actually sent. This field is also initially blank.

[0190] The data count per type 717 field declares the number of units of each data type (HTM or TXT) that is transmitted. The unit could be a file or other unit of data. Note that in this embodiment the data count per type 717 is set to 10 for HTM data, and 5 for TXT data.

[0191] As shown in table 702 in FIG. 7, the data communication function table 25 of the microwave oven 2 initially stores the following information.

[0192] The response transmission data type 721 stores a value indicating the type of data sent by the responding device (i.e., the device transmitting a response to a received request). This data type is initially unknown and the response transmission data type 721 is therefore undeclared.

[0193] The transmission data description 722 is the data format as shown in FIG. 3 that is used when the responding device, i.e., controller 1 in this embodiment, transmits data. As shown in FIG. 3 this includes the data type, data title, date, and size. This field is also initially blank because the message format that will be received is unknown.

[0194] The data transfer status 723 indicates whether transmission is in progress, and is initially set to NOT-SENDING.

[0195] The data division information 725 denotes the size of divided data that can be handled by the reception side, that is, by the device (microwave oven) 2 that sent the request and receives the response, and is set to 1024 in this embodiment.

[0196] The transmission data 726 field is where the requested data is stored and is initially blank because no data has been transmitted by (received from) the responding terminal.

[0197] The data count per type 727 field declares the number of units of each data type (HTM or TXT) that is transmitted. This value is initially unknown and the field is therefore blank.

[0198] The reception-side data type 724 is a value denoting the type of data that can be handled by the microwave oven 2. As shown in the function table 702, the microwave oven 2 can receive only HTM data in this embodiment.

[0199] Data communication in this embodiment of the invention is described next.

[0200] When a network connection is established or data communication is to begin, the microwave oven 2 with a transmission request function first confirms if it can operate as a transmission request device as follows. Specifically, using the table sharing processor 29, the microwave oven 2 acquires the response transmission data type 711 from the data communication function table 15 of the 1 and stores the acquired HTM and TXT values as the response transmission data type in field 821. It them compares these values with the value (HTM) of the request reception-side data type 724, and thus knows that it can receive data when the controller 1 transmits HTM data.

[0201] Next, using the table sharing processor 29, the microwave oven 2 stores the data count per type 717 values (10 and 5) from the data communication function table 15 of the controller 1 to the corresponding field 827. To select the data to be acquired from the target data, the controller 2 shares the transmission data description 712 information from the data communication function table of the controller 1 using the table sharing processor 29. Because the controller 1 stores the transmission data description for all data that can be transmitted as shown in field 712, the microwave oven 2 can get the transmission data description 712 for all target data and store it to the data communication function table 25 as transmission data description 822. It is therefore possible to select the requested data from among plural available transmission data descriptions. However, because only HTM data can be received in this embodiment, it is only possible to select and request HTM data.

[0202] Next, if multiple subfiles or segments are being transmitted and the third file or segment is being sent, for example, the data communication controller 22 of the microwave oven 2 sets the data transfer status 723 in the data communication function table 25 to SENDING #3 as shown in field 823 in FIG. 8 to request the third HTM data file or segment from the data types acquired in the transmission data description 822. Then using the table sharing controller 26 it sets the data transfer status 713 of the controller 1 to SENDING #3 as shown in field 813 in FIG. 8. The data communication controller 12 of the controller 1 can thus update the transmission data 716 and transmission data description 712 to the most recent data.

[0203] The specified data can thereafter be sent from the controller to the microwave oven using the same control process described in the first embodiment.

[0204] Furthermore, if the data in the controller is variable, that is, if the data count per type, the transmission data format for each data type, and the transmission data values are variable, writing is disabled while the data transfer status is SENDING. Writing can also be disabled separately from when the data transfer status is SENDING so that the data count per type, the transmission data format for each data type, and the transmission data values cannot be changed.

[0205] Once the data communication controllers 12, 22 of the controller 1 and microwave oven 2 determine that sharing the transmission data has been completed, the data transfer status is set to COMPLETED. The shared values set to fields other than the data transfer status field are kept. Further communication to share the same information is therefore unnecessary.

[0206] The configuration, operation, and procedure of the present invention enabling a communication device on an initiation side requiring data transmission (the trigger side) and a destination device that the trigger-side communication device communicates with to share information in their respective data communication function tables have been described in the above three embodiments. In the first embodiment the autonomous transmission side of an autonomous communication matches the data type of the autonomous reception-side device. In the second and third embodiments the request-reception side of a request/response communication transaction matches the data type of the response-transmission side (i.e., the device responding to the request).

[0207] Because data transmission is not possible if both sides cannot handle the same data type, one or both of the communication devices could also report that data transmission is not possible.

[0208] Alternatively, a separate communication device with a function for converting data types could be connected to the network and data transmissions could be routed through this conversion device. If the data types of the communicating devices do not match but this conversion function is provided in one or both of the communication devices, data could be converted to an accessible data type for transmission and reception.

[0209] Furthermore, a separate communication device that can receive the desired data type could receive and then forward the transmission data.

[0210] Yet further, if the data types do not match, a separate communication device could be queried for a transmission sequence matching the desired data type or a program able to process transmission data of the desired data type, the queried transmission sequence or program could be downloaded from the separate communication device to the communication device 1 or communication device 2 that is incompatible with the data type so that the incompatible device can handle the desired data type according to the desired type data count and divided data.

[0211] On the other hand, if the two communication devices share multiple common data types, data can be communicated using any desirable data type. Because the transmission data types are normally predefined, such as TXT, CSV, and HTM, the data type must be set to a type matching the content of the desired data file. It is therefore also possible to determine the data type of the required file and then select and share the corresponding type from among the multiple available data types.

[0212] The data communication function table used in the present invention works to define a procedure, that is, an object, for data communication, and the table itself is handled as an object. Negotiations between both communication devices starting a data communication session are smoothed and unnecessary communication traffic can be reduced by sharing information relating to data communication as a transmission task object, that is, by sharing an object rather than sharing each data field.

[0213] The autonomous transmission data type, transmission data description, data transfer status, transmission data, autonomous reception-side data type, response transmission data type, request-reception data type, data divisional size, and data count per type information described above are parameters known as “properties” for determining the type of data communication service. Various methods can be used to determine these parameters, and one specific method is described below with reference to FIG. 9, FIG. 10, and FIG. 11. FIG. 9 and FIG. 10 show properties related to [A] Data transmission services.

[0214] (1) Data Types Handled for PUSH Type Transmissions (Autonomous Transmission Data Type)

[0215] <Parameter Description>

[0216] This property defines the maximum byte size, number of types, data types, and maximum data unit count for data handled in PUSH type data transmissions.

[0217] Maximum byte size: maximum number of bytes that can be transmitted in one data unit

[0218] Number of types: number of data types that can be handled; if set to 0, all data types can be used.

[0219] Maximum data count: maximum number of data units of each data type.

[0220] <Read, Write, Notification Timing>

[0221] This value is normally readable regardless of the data transfer status.

[0222] Handled type information for PULL type transmissions (response transmission data type)

[0223] <Parameter Description>

[0224] This property defines the maximum byte size, number of types, data types, and maximum data unit count for data handled in PULL type data transmissions.

[0225] Maximum byte size: maximum number of bytes that can be transmitted in one data unit

[0226] Number of types: number of data types that can be handled; if set to 0, all data types can be used.

[0227] Maximum data count: maximum number of data units of each data type.

[0228] <Read, Write, Notification Timing>

[0229] This value is normally readable regardless of the data transfer status.

[0230] (3) Number of Data Units Per Date Type for PULL Type Transmissions (Data Count Per Type)

[0231] <Parameter Description>

[0232] Current number of data units per data type

[0233] The type order is the same as the handled type information for PULL type transmissions, but data types with a data count of 0 can be omitted.

[0234] The data counts specified in the data transfer status are also arranged in this type order.

[0235] <Read, Write, Notification Timing>

[0236] The data count cannot be changed when the data transfer status is set to SENDING or when writing is blocked.

[0237] This value is normally readable regardless of the data transfer status.

[0238] (4) Transmission Data Description

[0239] <Parameter Description>

[0240] This property describes the type, title, date, and byte size of the transmission data.

[0241] The properties defined for one data transmission block are used to handle all data blocks in the transmission sequence, and the transmission sequence element number is the data number. The data number sequence is the same as the type sequence specified in the handled type information for PULL type transmissions.

[0242] Date information: The data date is written as XX:YY:DD:HH:MM:SS where the respective value ranges are (20-99):(0-99):(1-12):(1-31):(0-23):(0-59):(0-59). If an object does not have date info, each of these date value bytes is set to 0.

[0243] Data byte count: total number of bytes in the transmission data.

[0244] Check code: twos complement of the total of each byte in the transmission data.

[0245] <Read, Write, Notification Timing>

[0246] The data count cannot be changed when the data transfer status is set to SENDING or when writing is blocked.

[0247] The transmission data description can always be read by addressing a specific format field.

[0248] (5) Data Transfer Status

[0249] <Parameter Description>

[0250] Denotes the current data transfer status; if data is being transmitted, it denotes the number of data units.

[0251] Writing can be prohibited to prevent changing the transmission type information, the specified data type count, and each data value.

[0252] <Read, Write, Notification Timing>

[0253] If the data transfer status is set to write-prohibited or sending, it is necessary to write the data count again and start data transfers, or reset a NORMAL TERMINATION or TERMINATED DUE TO ERROR status.

[0254] If a request for dropped data or a data transfer status setting is not received within a specified time after data transmission, the terminal sets its data transfer status to TERMINATED DUE TO ERROR.

[0255] If the data transfer status is set to write-prohibited or sending, this value cannot be written from any terminal other than the terminal running the data transfer process.

[0256] This value can be read at any time.

[0257] (6) Data Transfers

[0258] <Parameter Description>

[0259] If the data count is specified in the data transfer status, the data is divided to the size obtained from the data division information, and transmitted as a continuous sequence.

[0260] Total sequence count: denotes the number of divided data in the data sequence

[0261] Divisional size: the number of bytes in one data frame.

[0262] <Read, Write, Notification Timing>

[0263] After the data division information is received, the main data is transferred from the transmission side.

[0264]FIG. 11 shows the properties relating to the [B] data types handled for receiving PUSH type transmissions.

[0265] (1) Data Types Handled for Receiving PUSH Type Transmissions (Data Types on the Autonomous Reception Side)

[0266] <Parameter Description>

[0267] This property defines the maximum byte size, number of types, and data types for data handled when receiving PUSH type transmissions.

[0268] Maximum byte size: maximum number of bytes that can be received in one data unit

[0269] Number of types: number of data types that can be handled; if set to 0, all data types can be received.

[0270] <Read, Write, Notification Timing>

[0271] This value is normally readable regardless of the data transfer status.

[0272] (2) Data Types Handled for PULL Type Reception (Data Types on the Request-Receiving Side)

[0273] <Parameter Description>

[0274] This property defines the maximum byte size, number of types, and data types of data handled for PULL type reception.

[0275] Maximum byte size: maximum number of bytes that can be received in one data unit

[0276] Number of types: number of data types that can be handled; if set to 0, all data types can be received.

[0277] <Read, Write, Notification Timing>

[0278] This value is normally readable regardless of the data transfer status.

[0279] (3) Data Division Information

[0280] <Parameter Description>

[0281] Maximum number of bytes in data packets optimal for reception by receiving side

[0282] Maximum byte count of data packets set; maximum byte count of data packets that can be transmitted at one time by the terminal

[0283] The transmission data is divided and the data transfer process run so that the data packets for transmission can be generated using the lowest byte count possible within the maximum data packet byte count.

[0284] <Read, Write, Notification Timing>

[0285] This value cannot be written when the data transfer status is set to SENDING.

[0286] Exemplary messages using the properties shown in FIG. 9, FIG. 10, and FIG. 11 for executing the data communication methods and procedures of the three embodiments described above are described next below.

[0287] When data is transferred by autonomous transmission from the transmission-side in an autonomous communication process for PUSH type data communication, the data types for PUSH type reception handled on the reception-side are requested and the transmission data type is confirmed. The transmission data description is then reported, the data transfer, i.e., response, from the reception-side is confirmed, and the data is then transferred from the transmission-side by means of a divided data transmission. A typical communication sequence for autonomous communication (PUSH type data communication) is shown in FIG. 12. In this process data is transmitted automatically by means of an internal trigger on the transmission-side. Summary of processing of autonomous communication (PUSH type data communication) is now described.

[0288] <Pre-Processing>

[0289] (1) Data Type Information Requested (Transmission-Side→Reception-Side)

[0290] The transmission-side sends a read request to the reception-side for the data types handled for PUSH type reception.

[0291] (2) Handled Type Information Response (Reception-Side→Transmission-Side)

[0292] The reception-side sends the requested data types handled for PUSH type reception to the transmission-side.

[0293] <Data Transmission Process>

[0294] (3) Transmission data Description Report (Transmission-Side→Reception-Side)

[0295] The transmission-side writes the transmission data count and sets the data transfer status field to SENDING, and then reports the transmission data size, checksum, and other transmission data to the reception-side. The reception-side determines if data reception is possible from the transmission data description; if it is not, the reception-side sets the data transfer status to TERMINATED DUE TO ERROR.

[0296] (4) Divided Data Information Report (Reception-Side→Transmission-Side)

[0297] If the reception-side decides that reception is possible, it sends the maximum byte count per data packet that it can receive.

[0298] (5) Divided Data Transfer (Transmission-Side→Reception-Side)

[0299] The transmission-side divides and continuously transmits the data to the reception-side.

[0300] (6) Specified Data Divisional Request (Reception-Side→Transmission-Side)

[0301] After the reception-side receives the last divided data, or if there is a divided data that could not be normally received when a time-out occurs while waiting for a divided data, a transmission request specifying a particular divisional data number is sent from the reception-side to the transmission-side.

[0302] (7) Specified Divided Data Transmission (Transmission-Side→Reception-Side)

[0303] If a request for a particular divided data is received from the reception-side, the transmission-side sends the requested divided data.

[0304] (8) Data Transfer Completed (Reception-Side→Transmission-Side)

[0305] If the data is correctly received, or if the data transfer process is terminated for some reason, the reception-side sends data setting the data transfer status to COMPLETED to the transmission-side.

[0306] There are also cases in which this frame is not sent. Therefore, the data transmission side runs a process for inserting a timeout in the process waiting for a specific divided data request and data transfer completion setting frame, and changing the data transfer status from SENDING to COMPLETED.

[0307]FIG. 13 (1) to (8) are examples of the messages used in the above sequence. In FIG. 13 OHD is the object header, SEOJ is the sender object, DEOJ is the destination object, EPC is the property name code, and ESV is the property service content. The ESV packet is followed by additional data packets as needed. These messages can be sent and received between network controller 14 and 15 by adding the address of communication devices 1 and 2 as either the sender address or destination address.

[0308] When there is a data communication request from the reception-side In a request/response communication process (PULL type data communication), after the PUSH type transmission data type is requested from the transmission-side and the transmission data is confirmed, a data collection process is run as needed and the reception-side then sends a start data transfer trigger. When the data transmission side receives this trigger, it reports the transmission data description for the specified data and then runs the same data transfer process used with PUSH type transmissions.

[0309] A typical communication sequence for request/response communication (PULL type data communication) is shown in FIG. 14, and the messages used therein are described below.

[0310] <Pre-Processing>

[0311] (1) Handled Type Information Request (Reception-Side→Transmission-Side)

[0312] The transmission-side sends a read request to the reception-side for the data types handled for PULL type transmission.

[0313] (2) Handled Type Information Response (Transmission-Side→reception-side)

[0314] The reception-side sends the requested data types handled for PULL type transmission to the transmission-side.

[0315] <Target Data Description Collection Process>

[0316] The data selection process is described below. Each of the following processes are run as needed. The processes can also be run independently of data transfers.

[0317] (3) Data Transfer Status Request (Reception-Side→Transmission-Side)

[0318] The reception-side requests the data transfer status from the transmission-side. The transmission-side responds to the request by sending the data transfer status.

[0319] (4) Data Transfer Status Response (Transmission-Side→Reception-Side)

[0320] The transmission-side sends a data transfer status response to the reception-side. If the data transfer status is unprocessed or data transfer is completed, the reception-side sends a write-prohibit or start data transfer trigger.

[0321] (5) Write-Prohibit (Reception-Side→Transmission-Side)

[0322] The data transfer status is set to a write-prohibit state so that the transmission-side cannot rewrite the current data type or data. A write-prohibit is applied as needed. After a write-prohibit state is set it is necessary to either set the data count to the data transfer status and start data transfer, or set the data transfer status to COMPLETED.

[0323] (6) Data Count Per Type Request (Reception-Side→Transmission-Side)

[0324] The data count for each transmitted data type is requested as needed to collect information immediately before data transfer starts.

[0325] (7) Data Count Per Type Response (Transmission-Side→Reception-Side)

[0326] The data count per data type is returned per the request.

[0327] (8) Specified Transmission Data Description Request (Reception-Side→Transmission-Side)

[0328] To get the data that will be sent before the data transfer process, a data number is specified and sent to request the transmission data description.

[0329] (9) Specified Transmission Data Description Response (Transmission-Side→Reception-Side)

[0330] The transmission-side returns the specified transmission data description as requested.

[0331] <Transmission Process>

[0332] (10) Start Data Transfer Trigger (Reception-Side→Transmission-Side)

[0333] The reception-side sends a start data transfer trigger to the transmission-side by sending a frame setting the data transfer status to PROCESSING. The transmission-side runs the following process after receiving this trigger (frame).

[0334] The subsequent process is the same as described in the PUSH type data transfer process.

[0335]FIG. 15 and FIG. 16 show examples of the communication messages in the above PULL type sequence.

[0336] Another embodiment of the data communication function table according to the present invention is described next with reference to FIG. 17 and FIG. 18. In FIG. 17 and FIG. 18 the data communication function table 901 of communication device 1 has the following fields: autonomous transmission data type 911, autonomous reception data type 912, response transmission data type 913, request reception data type 914, transmission data description 915, data transfer status 916, data count per type 917, divisional data count 918, and transfer data 919.

[0337] The data communication function table 902 of communication device 2 likewise has the following fields: autonomous transmission data type 921, autonomous reception data type 922, response transmission data type 923, request reception data type 924, transmission data description 925, data transfer status 926, data count per type 927, divisional data count 928, and transfer data 929.

[0338] Each data area is divided into (a) and (b) where each communication device stores its own information in (a) and data for the other communication device in (b). Of the data stored in (a), the data types, data unit count per data type, and divisional data number that the communication device can handle is stored to autonomous transmission data type 911, 921; autonomous reception data type 912, 922; response transmission data type 913, 923; request reception data type 914, 924; data count per type 917, 927; and divisional data count 918, 928, respectively. Furthermore, the values stored for the following fields are determined during the data communication process and are therefore initially blank: transmission data description 915, 925, and data transfer status 916, 926, respectively. “Undeclared” with reference to the data transfer status 916, 926 means “not transmitted.” Because the values of the destination device are initially unknown, each of the values in data area (b) is initially null.

[0339] Autonomous communication initiated by communication device 1 is described first. First, communication device 1 sends a message to send the autonomous reception data type 922 (a) and divisional data count 928 (a) information to communication device 2, and communication device 2 then sends data in response. Communication device 1 stores the received autonomous reception data type 922 (a) and divisional data count 928 (a) to 912 (b) and 918 (b), respectively, and compares the values with autonomous transmission data type 911 (a) and divisional data count 918 (a) to detect common values. It then selects the desired data type from among the common types and writes to transmission data description 915(a). In the example shown in FIG. 18 the HTM type is common to both fields 911(a) and 912(b), and 1024 is common to both fields 918(a) and 918(b).

[0340] Communication device 1 thus knows to autonomously transmit an HTM format file A, sets data type HTM, filename A, date 2002/3/10, and byte count 5500 to the transmission data description 915(a) according to the format shown in FIG. 3, and sends this information to the communication device 2. Communication device 2 then stores the received data to transmission data description 925 (b). Communication device 1 also prepares file A in the transfer data 919 (a) field, sets the data transfer status 916 (a) to SENDING and sends the data transfer status 916 to communication device 2 to notify communication device 2 of the start of transmission. Communication device 2 then stores the received data transfer status 916(a) to 926(b), and prepares to receive a file.

[0341] Next, communication device 1 divides file A in transfer data 919(a) into 1024 byte segments and transmits the divided data. Communication device 2 stores the file A received in segments in the order received to transfer data 929(b). If file A consists of plural subfiles, the transfer status and subfile numbers can be managed by changing the data transfer status 916(a) according to the subfile number. For example, when sending subfile number 3, the data transfer status could be set to SENDING #3. Communication device 2 could also manage the data transfer status and subfile numbers using field 926(b). If when sending the transmission data description 915(a) the data count per type 917(a) is also sent either simultaneously or separately, the communication device 2 will know in advance the number of files to be sent and can therefore determine when transmission is completed.

[0342] As thus described communication device 1 or 2 obtains the data types, divisional data count, data unit count per data type, and other information from the other device and compares this information with its own processing capabilities so that both communication devices share the same processing capabilities. Furthermore, when a file or other transmission data is selected and sent, the data type, filename; and other information related to the transmission data is also shared between the terminals. The transmission data is then shared between the devices by sending the data.

[0343] By thus using a data communication function table and sharing information about each communication device with the other communication device, negotiations between the communication devices 1, 2 can be completed with less network traffic.

[0344] The data communication function tables shown in FIG. 17 and FIG. 18 assume that both communication devices 1 and 2 can operate in autonomous transmission, autonomous reception, response transmission, and request reception modes, but if a communication device can only operate in some subset of these operating modes unnecessary data areas, that is, (a) or (b) or both (a) and (b), can be omitted. Embodiments 1, 2, and 3 above are equivalent to such cases.

[0345] It is preferable for the transmission-side device to match its communication capabilities, that is, the data types handled, data divisional information, and data unit count per type, for example, to the specifications of the other device, but the reception could also prepare to receive data by adjusting its operation to the capabilities of the transmission side. This is particularly applicable when the reception-side adapts to the attributes and status of the transmission data received.

[0346] In the data communication function tables shown in FIG. 17 and FIG. 18 the autonomous transmission data type 911 and response transmission data type 913 could be combined as a single transmission data type 911, the autonomous reception data type 912 and request reception data type 914 could be combined as a single reception data type 912, and fields 913 and 914 could be omitted. In autonomous communication in this case the reception data type of the destination is acquired, and the transmission-side device compares the transmission data type with the reception data type. Furthermore, in request/response communication the transmission data type of the destination is acquired, and the initiating device compares its reception data type with the transmission data type of the destination device.

[0347] As also described above the data communication function table could be sent as a single object to share the data therein instead of sending and sharing the individual properties according to a defined procedure. In this case the values in the data communication function table that the communication device needs to acquire are left blank (undeclared) in the table object sent to the other device. While a single transmission may be sufficient in some cases, it generally necessary to send the tables back and forth plural times between communication devices 1 and 2.

[0348] (Embodiment 4)

[0349] An autonomous data transmission from a terminal device to the controller is described in this embodiment with reference to a terminal device and controller configured as shown in FIG. 1. In this example an air conditioner 1 is the terminal device autonomously transmitting data, the controller 2 is on the reception-side. The air conditioner 1 accumulates maintenance data for a specified period of time and then autonomously sends the accumulated data to the controller 2.

[0350] As shown in FIG. 19 the air conditioner 1 stores transmission function table 1001 and the controller 2 stores a reception function table 1002. Both terminal devices send and receive data by reading and writing the tables of the other device over a communication network. This transmission function table and reception function table are collectively referred to below as communication function tables.

[0351] The transmission function table 1001 stores the following information.

[0352] The operation status 1011 is a binary value indicating whether the transmission function table 1001 is valid or not; 0×30 30 denotes the table is valid (ON) and 0×30 31 denotes the table is not valid (OFF).

[0353] The data-providing device/function information 1012 is a code denoting the type and functions of the device providing the transmission data. If the device is an air conditioner that sends maintenance data at a regular interval, the value 0×30 013001F0 combining the air conditioner code 0×30 013001 and maintenance data code 0×F0 is stored to field 1012 in this example. It should be noted that all codes shown herein are by way of example only. The combination of device and function codes generates a unique code.

[0354] The transmission data description 1013 describes the data format as shown in FIG. 3, including a data type (bitmap or text, for example), data title (filename), data date, and data size.

[0355] The data transmission status 1014 indicates whether transmission is in progress.

[0356] The data division information 1015 denotes the size of data that can be handled by the reception side controller 2.

[0357] The transmission data 1016 is the data that is actually sent.

[0358] The following information is stored to the reception function table 1002.

[0359] The operation status 1021 is a binary value indicating whether the reception function table 1002 is valid or not; 0×30 30 denotes the table is valid (ON) and 0×30 31 denotes the table is not valid (OFF).

[0360] The data-providing device/function information 1022 is the same as the data-providing device/function information 1012, i.e., a code denoting the type and functions of the device providing the transmission data.

[0361] The data reception status 1024 indicates whether reception is in progress.

[0362] The data division information 1025 denotes the size of divided data that can be handled by the reception side device.

[0363] The operation of this embodiment is described next.

[0364] First, the air conditioner 1 and controller 2 must recognize each other. More particularly, the transmission-side device, i.e., air conditioner 1, must first recognize the presence of the transmission destination, i.e., controller 2, before it can send data to the controller 2. This confirmation sequence must therefore be run by the air conditioner 1 as described below.

[0365] The air conditioner 1 and controller 2 are designed so that they automatically broadcast information from their own communication function tables as soon as the power turns on. If the air conditioner 1 turns on after the controller 2 and the controller 2 thus receives the transmission function table 1001 report from the air conditioner 1, the controller 2 sends a message to write ON to the operation status 1011 field of the transmission function table 1001 in the air conditioner 1. This write message to the air conditioner 1 contains the address of the 2 and information indicating that the reception function table 1002 is available. The air conditioner 1 recognizes the presence of a device with a reception function table when it receives this message.

[0366] If the controller 2 turns on after the air conditioner 1, the air conditioner 1 can recognize a transmission destination device because it can receive the reception function table 1002 availability report from the controller 2. Furthermore, after the air conditioner 1 receives the reception function table 1002 report from the controller 2, it sends a write ON message to the operation status 1021 field of the reception function table 1002 in the controller 2, and thus causes the controller 2 to recognize the air conditioner 1.

[0367] Alternatively, after the power turns on the air conditioner 1 and controller 2 could broadcast their own communication function table data to the network, send a message to read and report the operation status of the other device's communication function table, and thus recognize the other device by means of the received response to this message.

[0368] For example, when an air conditioner 1 with a transmission function table turns on, it sends an operation status read/report request message to all devices that have a reception function table on the network. A controller 2 receiving this message reads the operation status 1021 from the reception function table 1002 of the controller 2, and creates and sends a response message to the air conditioner 1. The air conditioner 1 can thus confirm the presence of the reception function table 1002 in the controller 2.

[0369] It is therefore possible for the air conditioner 1 to recognize the controller 2 as a destination for autonomous transmissions in a process preceding actual data transmission.

[0370] Sending and receiving data between the air conditioner 1 and controller 2 is described next. When maintenance data for a specified period of time is accumulated, for example, the air conditioner 1 generates and sends the data-providing device/function information 1012 to the controller 2. The controller 2 then interprets this information received from the air conditioner 1, and to get the maintenance data sends to the air conditioner 1 a message to write SENDING to the data transmission status 1014 field of the transmission function table 1001 in the air conditioner 1.

[0371] If the controller 2 decides not to get the maintenance data, it sends to the air conditioner 1 a message to write a code denoting TERMINATED DUE TO ERROR to the data transmission status 1014 field in the transmission function table 1001 of the air conditioner 1. In this case the controller 2 writes nothing to the data reception status 1024 field of its own reception function table 1002.

[0372] The write SENDING message received from the controller 2 acts as a trigger causing the air conditioner 1 to read the transmission data description 1013 from the transmission function table 1001 and send it to the controller 2. It then reads and divides the transmission data 1016 to the divisional size defined in the data divisionaol information 1015 field, and autonomously transmits the data to the controller 2. When the controller 2 receives all of the transmitted divided data, it reassembles the data, links it to the previously received transmission data, and stores the received data.

[0373] When the air conditioner 1 sends the data-providing device/function information 1012 to the controller 2, it could also append the transmission data description 1013. In this case the air conditioner 1 could immediately begin sending the divided transmission data after it receives the write SENDING message from the controller 2.

[0374] Because a terminal device having a function for autonomously transmitting data sends information describing the terminal device and terminal device functions to the controller before the terminal device transmits data to the controller in this fourth embodiment of the invention, the controller receiving autonomous transmissions can get data from the terminal device after first recognizing the device providing the information and the functions of that device.

[0375] (Embodiment 5)

[0376] This embodiment of the invention describes a controller requesting data from a terminal device using a controller and terminal device configured as shown in FIG. 1. This embodiment describes a method for sending and receiving data between a camera 1 used as the terminal device for capturing still images, and a controller 2 on the reception-side. The controller 2 requests still image data from the camera 1.

[0377] The camera 1 and controller 2 respectively store the transmission function table 1001 and reception function table 1002 shown in FIG. 19. These tables are as described above in the fourth embodiment and further description thereof is therefore omitted. It should be noted that the code stored to the data-providing device/function information 1012 in the transmission function table 1001 in this example is 0×30 06C001F1 combining the code 0×30 06C001 denoting a camera 1 and the code 0×F1 denoting still image data. As above, these codes are used by way of example only.

[0378] The operation of this embodiment is described next.

[0379] First, the controller 2 must recognize the camera 1. This is accomplished as follows.

[0380] As in the fourth embodiment, the camera 1 and controller 2 are designed so that they automatically broadcast information from their own communication function tables as soon as the power turns on. If the controller 2 turns on after the camera 1 and the camera 1 thus receives the reception function table 1002 report from the controller 2, it writes ON to the operation status 1021 of the reception function table 1002 in the controller 2. This write message sent to the controller 2 contains the camera 1 address and information indicating that the transmission function table 1001 is available. The controller 2 thus knows when it receives this message that there is a device with a transmission function table on the network.

[0381] Conversely, if the camera 1 power turns on after the controller 2, the controller 2 can receive the transmission function table 1001 availability report from the camera 1 and thereby recognize the data request destination. After the controller 2 gets the transmission function table 1001 availability report from the camera 1, the controller 2 could also send a write ON message to the operation status 1011 in the transmission function table 1001 of the camera 1 so that camera 1 recognizes the controller 2.

[0382] After the camera 1 and controller 2 turn on, each device could also broadcast their own communication function table information to the network as described in the fourth embodiment, send a read/report request message to access the operation status from the communication function table of the other device, and recognize the other communication devices from the responses to these request messages.

[0383] It is therefore possible for the controller 2 to recognize the camera 1 as a data request destination as a preprocess to data transmission.

[0384] Sending and receiving data between the camera 1 and controller 2 is described next.

[0385] The controller 2 sends to the camera 1 a read request message to get information about the data-providing device and functions from the data-providing device/function information 1012 field of the transmission function table 1001 in the camera 1. From the camera 1 response message the controller 2 gets information about the functions and device supplying data, i.e., the camera 1, and more specifically in this embodiment information indicating “a still image from the camera,” and determines whether the controller 2 is to get data from the camera 1.

[0386] To get data from the camera 1, the controller 2 first sends to the camera 1 a request message to read the data transmission status 1014 from the transmission function table 1001 of the camera 1. The controller 2 then receives a response message from the camera 1 and confirms the transmission status of the camera 1. If the transmission status is READY, the controller 2 then sends to the camera 1 a write request message to write the SENDING code to the data transmission status 1014 of the transmission function table 1001 in the camera 1. The controller 2 also writes a code denoting RECEIVING in the data reception status 1024 field of its own reception function table 1002.

[0387] After the camera 1 writes the SENDING code to the data transmission status 1014 of its transmission function table 1001 from the controller 2, it generates and sends the transmission data description 1013 to the controller 2. It then reads and divides the transmission data 1016 to the divisional size stored in the data division information 1015 field, and autonomously transmits the divided data to the controller 2. When the controller 2 receives all transmitted data, it reassembles the data, links it to the previously received transmission data, and stores the received data.

[0388] Because a controller able to request data from a terminal device storing the data gets information relating to the terminal device and the functions of the terminal device before it requests data from the terminal device in this fifth embodiment of the invention, the controller is able to get data from the terminal device after clearly recognizing the device providing the data and the function of the device.

[0389] (Embodiment 6)

[0390] Specific examples of the properties for achieving the data communication method and procedure described in the above fourth and fifth embodiments are shown in FIG. 20, FIG. 21, and FIG. 22 and described below.

[0391]FIG. 20 shows properties related to the data reception service.

[0392] (1) Object Information Handled for PUSH Type Reception

[0393] <Parameter Description>

[0394] Maximum file byte size: maximum byte size of a push-receivable file after it is reassembled

[0395] File provider object/property count: number of properties of the self-node or other-node providing push-receivable files; maximum=40.

[0396] File provider object/property: combined object code and property code of the self-node or other-node providing push-receivable files

[0397] File count: number of files that can be received and stored per device object/property; 0−0×FFFE=number of files; 0×FFFF=no defined limit.

[0398] <Read, Write, Notification Timing>

[0399] This property is always readable.

[0400] (2) Object Information Handled for PULL Type Reception

[0401] <Parameter Description>

[0402] Maximum file byte size: maximum byte size of a pull-receivable file after it is reassembled

[0403] File provider object/property count: number of properties of the self-node or other-node providing pull-receivable files; maximum=40.

[0404] File provider object/property: combined object code and property code of the self-node or other-node providing pull-receivable files

[0405] File count: number of files that can be received and stored per device object; 0−0×FFFE=number of files; 0×FFFF=no defined limit.

[0406] <Read, Write, Notification Timing>

[0407] This property is always readable.

[0408] (3) Data Division Information

[0409] <Parameter Description>

[0410] Denotes maximum EDT byte count optimal for reception.

[0411] <Read, Write, Notification Timing>

[0412] The property is read before the transmission-side sends a transmission data report.

[0413] This property is always readable.

[0414]FIG. 21 shows part of the properties related to the data transmission service.

[0415] (1) Object Information Handled for PUSH Type Transmission

[0416] <Parameter Description>

[0417] Maximum file byte size: maximum byte size of a push-transmittable file after it is divided.

[0418] File provider object/property count: number of properties of the self-node or other-node providing push-transmittable files; maximum=40.

[0419] File provider object/property: combined object code and property code of the self-node or other-node providing push-receivable files

[0420] File count: number of files per device object/property

[0421] <Read, Write, Notification Timing>

[0422] This property is readable regardless of the transmission status.

[0423] The file count field of this property cannot be changed when the transmission status is SENDING or a write-prohibit is applied.

[0424] (2) Object Information Handled for PULL Type Transmission

[0425] <Parameter Description>

[0426] Maximum file byte size: maximum byte size of a pull-transmittable file before it is divided

[0427] File provider object/property count: number of properties of the self-node or other-node providing pull-transmittable files; maximum=40.

[0428] File provider object/property: combined object code and property code of the self-node or other-node providing pull-receivable files

[0429] File count: number of files per device object/property

[0430] <Read, Write, Notification Timing>

[0431] This property is readable regardless of the transmission status.

[0432] The file count field of this property cannot be changed when the transmission status is SENDING or a write-prohibit is applied.

[0433]FIG. 22 shows part of the properties related to the data transmission service.

[0434] (3) Transmission Status

[0435] <Parameter Description>

[0436] READY/last-terminated-normally=0: standby state prior to transmission or after a previous transmission was finished normally

[0437] Transmission start=0×30 01: transmission process started (or during transmission)

[0438] Write-prohibit=0×30 10: a mode in which the transmission target information, transmission file information, and transmission data cannot be changed.

[0439] Last-terminated-due-to-error=0×FF: standby mode after the last transmission attempt ended due to error

[0440] <Read, Write, Notification Timing>

[0441] This property is always readable.

[0442] If the transmission status is set to SENDING or WRITE-PROHIBIT, this property cannot be written from any node other than the file reception-side not that write the transmission status.

[0443] The transmission process can be interrupted by writing NORMAL TERMINATION or TERMINATED DUE TO ERROR code to this property during data transmission.

[0444] If the transmission status is set to SENDING or WRITE-PROHIBIT, it is necessary to reset a NORMAL TERMINATION or TERMINATED DUE TO ERROR status, to start transmission by writing START TRANSMISSION again.

[0445] (4) Transmission target information

[0446] <Parameter Description>

[0447] File provider object/property: device object/property information in the handled object information that will be transmitted

[0448] File number: number of each file when multiple files are handled

[0449] <Read, Write, Notification Timing>

[0450] For PUSH type transmission the transmission target information is reported from the transmission-side node to the reception-side node.

[0451] For pull-mode transmission the transmission target information is written from the reception-side node to the transmission-side node.

[0452] This property is not changed when the transmission status is SENDING or WRITE-PROHIBIT.

[0453] This property is readable when the transmission status is SENDING or WRITE-PROHIBIT.

[0454] (5) Transmission File Information

[0455] <Parameter Description>

[0456] Defines the filename, date, byte size of the file, and a check code.

[0457] Filename: filename of eight ASCII characters

[0458] Attributes: file attributes denoted with three ASCII characters

[0459] Date: file date in the format Y1Y2/MN/DD HH:MM: SS where

[0460] Y1=0×30 13−0×30 63 (19-99),

[0461] Y2=0×30 00−0×30 63 (00-99),

[0462] MN=0×30 01−0×30 0C (1-12),

[0463] DD=0×30 01−0×30 1F (1-31),

[0464] HH=0×30 00−0×30 17 (0-23),

[0465] MM=0×30 00−0×30 3B (0-59),

[0466] SS=0×30 00−0×30 3B (0-59).

[0467] If the file has no date, each date byte is set to 0.

[0468] File byte size: total number of bytes in the transmission file

[0469] Check code: twos complement of the total of each byte in the transmission file

[0470] <Read, Write, Notification Timing>

[0471] For pull-mode transmission, the transmission-side node writes SENDING to the transmission state property from the reception-side node, and returns this property value to the reception-side node.

[0472] For PUSH type transmission, the transmission-side node changes the transmission state property to SENDING and then sends this property value to the reception-side node.

[0473] This property is not changed when the transmission status is SENDING or WRITE-PROHIBIT.

[0474] This property is readable when the transmission status is SENDING or WRITE-PROHIBIT.

[0475] (6) Transmission Data

[0476] <Parameter Description>

[0477] Total array size: size of the array transmitted in segments

[0478] divisional size: byte length of each divided data. Except for the last array element where the total array size is 2 or more, the size of each divided is the same, and (divisional size+6) is equal to the EDT size.

[0479] divided data: the data of the divided file. The last array element is padded to the same EDT size as other arrays, and the divisional size and later data is not padded.

[0480] <Read, Write, Notification Timing>

[0481] After the data division information is received from the reception-side, the transmission data is sent from the transmission-side node.

[0482] If the transmission status is not SENDING, these property values cannot be read or reported.

[0483] Next, the data communication methods and procedures described in embodiments 4 and 5 above are described below with reference to a sequence using the properties shown in FIGS. 20, 21, and 22.

[0484] Using the change-instance class report in the startup sequence of each node, the device startup process running on the transmission-side device gets the address (EA) of the reception-side node for PUSH type file transmissions, and for pull-mode file transmissions the reception-side gets the address (EA) of the transmission-side node.

[0485]FIG. 23 shows a sequence for when the reception-side starts up before the transmission-side node.

[0486] <Process When the Reception-Side Node Starts First and the Transmission-Side Node Starts Later>(1) Change instance class report (transmission-side→reception-side)

[0487] A change instance class report is sent to the reception-side during the startup sequence. The reception-side node receiving this report can get the address (EA) of a device having a transmission service object.

[0488] (2) Write Operation Status ON Request (Reception-Side→Transmission-Side)

[0489] When the reception-side node can receive files in the PUSH mode, it receives the change instance class report, and the reception-side node sends a write request to set the operation status of the transmission service object ON. The transmission-side node receiving this request can get the address (EA) of the device having a reception service object.

[0490]FIG. 24 is a sequence used when the transmission-side node starts up first and then the reception-side node starts up.

[0491] <Process When the Transmission-Side Node Starts First and the Reception-Side Node Starts Later>

[0492] (1) Change Instance Class Report (Reception-Side→Transmission-Side)

[0493] A change instance class report is sent to the transmission-side node during the startup sequence. The transmission-side node receiving this report can get the address (EA) of a device having a reception service object.

[0494] (2) Write Operation Status ON Request (Transmission-Side→Reception-Side)

[0495] When the transmission-side node can transmit files in the PULL type, it receives the change instance class report, and the transmission-side node sends a write request to set the operation status of the reception service object ON. The reception-side node receiving this request can get the address (EA) of the device having a transmission service object.

[0496] To transfer a file by means of autonomous transmission from the transmission-side node in an autonomous communication process (PUSH type data communication), the handled object information for PUSH type reception is requested from the reception-side node, the transmission target information is sent as needed, the transmission file information is sent, and the file is then transmitted by sending the divided data from the transmission-side node.

[0497]FIG. 25 is a typical communication sequence for autonomous communication.

[0498] <Preprocess>

[0499] (1) Handled Object Information Request (Transmission-Side→Reception-Side)

[0500] The transmission-side node sends to the reception-side node a read request for the handled object information for PUSH type reception.

[0501] (2) Handled Object Information Response (Reception-Side→Transmission-Side)

[0502] The reception-side node receiving the request responds by sending the handled object information for PUSH type reception. It should be noted that steps (1) and (2) above could be omitted.

[0503] <Transmission Process>

[0504] (3) Transmission Target Information Report (Transmission-Side→Reception-Side)

[0505] If there are multiple objects on the reception-side, the transmission-side sends the transmission target information to identify the device object to which data will be sent.

[0506] (4) Transmission Status Write Request (Reception-Side→Transmission-Side)

[0507] If the reception-side node receives the transmission target information report and is able to receive the data to be transmitted, it issues a write request to set the transmission status of the transmission service object to START SENDING. If the data to be transmitted cannot be received, it issues a write request to set the transmission status to LAST-TERMINATED-DUE-TO-ERROR.

[0508] (5) Transmission File Information Report (Transmission-Side→Reception-Side)

[0509] After the transmission-side node sets the transmission status to START SENDING, it sends the transmission file information, including transmission file size and checksum, to the reception-side node. The reception-side node determines from the transmission file information if reception is possible, and if reception is not possible sets the transmission completion setting to TERMINATED DUE TO ERROR.

[0510] (6) Transmission File Information Response (Reception-Side→Transmission-Side)

[0511] The reception-side node returns a response to the transmission-side node.

[0512] (7) Divided Data Transmission (Transmission-Side→Reception-Side)

[0513] The transmission-side node divides the file and sends divided data in a continuous stream to the reception-side node.

[0514] (8) Specified Divided Data Request (Reception-Side→Transmission-Side)

[0515] If there is a divided data that was not correctly received either after the last divided data is received or when a timeout occurs while waiting for a divided data, the reception-side node sends a transmission request specifying the array element number of the desired divided data.

[0516] (9) Specified Divided Data Transmission (Transmission-Side→Reception-Side)

[0517] When the transmission-side node receives a request for a specific divided data from the reception-side node, it sends the specified array element.

[0518] It should be noted that steps (8) and (9) above could be omitted.

[0519] (10) Transmission Completed Setting (Reception-Side→Transmission-Side)

[0520] If the file is correctly received or if the transmission process is ended for some reason, the reception-side node sets the transmission status to COMPLETED and returns it to the transmission-side node.

[0521] There are also cases where the transmission completion setting is not returned. The transmission-side node therefore runs a process to insert a timeout in the process waiting for the specific divided data request and transmission completion setting frame, and change the data transfer status from SENDING to LAST-TERMINATED-DUE-TO-ERROR.

[0522] If file transmission is requested from the reception-side node in a request/response communication process (PULL type data communication), the object information handled for PUSH type transmission is requested from the transmission-side node to check the transmission file, transmission file information is gotten as needed, and the reception-side node sends a start transmission trigger. When the transmission-side node receives this trigger it returns the transmission file information for the specified target object, and then runs the same transmission process as for a PUSH type transmission.

[0523]FIG. 26 shows a typical communication sequence for request/response communication.

[0524] <Preprocess>

[0525] (1) Handled Object Information Request (Reception-Side→Transmission-Side)

[0526] The transmission-side node sends to the reception-side node a read request for the handled object information for PULL type transmission.

[0527] (2) Handled Object Information Response (Transmission-Side→Reception-Side)

[0528] The transmission-side node receiving the request responds by sending the handled object information for PULL type transmission.

[0529] <File Information Collection Process>

[0530] (3) Transmission Status Request (Reception-Side→Transmission-Side)

[0531] The reception-side node requests the transmission status from the transmission-side node. The transmission-side node responds by sending the transmission status.

[0532] (4) Transmission Status Response (Transmission-Side→Reception-Side)

[0533] The transmission-side node sends a transmission status response to the reception-side node. If the transmission status is unprocessed or completed, the reception-side node sends a WRITE-PROHIBIT or START SENDING trigger.

[0534] (5) Write-Prohibit (Reception-Side→Transmission-Side)

[0535] To prevent the transmission-side node from changing the transmission file information, the reception-side node requests setting the transmission status to WRITE-PROHIBIT. In response to the request the transmission-side node sets the transmission status to WRITE-PROHIBIT. This write-prohibit state is applied as needed. After the transmission status is set to write-prohibit, it must be set to START SENDING to start transmission or to COMPLETED.

[0536] (6) Transmission Status Write Response (Transmission-Side→Reception-Side)

[0537] The transmission-side node responds to the write request.

[0538] (7) Transmission Target Information Write Request (Reception-Side→Transmission-Side)

[0539] A transmission target information write request is asserted to collect file information as needed.

[0540] (8) Transmission Target Information Write Response (Transmission-Side→Reception-Side)

[0541] The transmission-side node responds to the write request.

[0542] (9) Specific Transmission File Information Request (Reception-Side→Transmission-Side)

[0543] The transmission file information is requested before the transmission process to get the transmission file information for the target file.

[0544] (10) Specific Transmission File Information Response (Transmission-Side→Reception-Side)

[0545] The transmission-side node returns the specified transmission file information as requested.

[0546] <Transmission Process>

[0547] (11) Start Transmission Trigger (Reception-Side→Transmission-Side)

[0548] The reception-side node sends a trigger to start transmission by asserting a write request to set the transmission status to PROCESSING. The transmission-side node runs the next process after receiving this trigger. Operation is the same as for PUSH type file transmission after the transmission file information is sent.

[0549] It should be noted that steps (5) to (11) could be omitted.

[0550] (Embodiment 7)

[0551] Specific examples of properties for achieving the data communication methods and procedures described in the fourth and fifth embodiments above are described below.

[0552]FIG. 27 shows properties related to the data reception service.

[0553] (1) Operation Status

[0554] Denotes the operating state of the file reception service function. Set to 0×30 31 if not operating, 0×30 30 if operating normally.

[0555] (2) Object Information for PUSH Type Reception

[0556] Defines the maximum byte size of files handled for PUSH type reception, the file-providing device object, and properties. The presence of this property indicates that PUSH type file reception is possible. This property is required to receives files in the PUSH mode. If multiple instances of this service object are run on the reception-side node, each instance is installed so that the values of this property are not duplicated.

[0557] <Parameter Description>

[0558] Maximum file byte size: maximum byte size of a push-receivable file after it is divided

[0559] File storing device class/property count: combined number of classes and properties able to store a push-receivable file; maximum=40.

[0560] File storing device class/property: combined class group code, class code and property code of self-nodes or other-nodes storing push-receivable files

[0561] File count: number of files that can be received and stored per device class/property; 0−0xFFFE=number of files, 0xFFFF=no specific limit

[0562] <Read, Write, Notification Timing>

[0563] This property is always readable.

[0564] (3) Data Division Information

[0565] Defines the maximum divisional size of receivable data. The transmission-side node compares the reported property value with the divisional size the self-node can transmit, and divides and sends the file using the smallest detected divisional size.

[0566] <Parameter Description>

[0567] Denotes the maximum receivable EDT byte count.

[0568] <Read, Write, Notification Timing>

[0569] This property is read before the transmission-side node sends the transmission data.

[0570] This property is always readable.

[0571]FIG. 28 shows the properties related to the data transmission service.

[0572] (1) Operation Status

[0573] Denotes the operating state of the file transmission service function. Set to 0×30 31 if not operating, 0×30 30 if operating normally.

[0574] (2) Object Information for PUSH Type Transmission

[0575] Defines the maximum byte size of files handled for PULL type file transmission, the file-providing device object, and properties. The presence of this property indicates that PULL type file transmission is possible. If multiple instances of this service object are run on the reception-side node, each instance is instantiated so that the values of this property are not duplicated. This property is required to send files in the PULL type.

[0576] <Parameter Description>

[0577] Maximum file byte size: maximum byte size of a PULL type transmission file before it is divided

[0578] File-providing device object/property count: combined number of self-node or other-node device objects and properties able to provide files for PULL type transmission; maximum=40.

[0579] File-providing device object/property: combined property codes and device objects denoted by the class group codes, class codes, and instance codes of self-node and other-node devices providing files for PULL type reception.

[0580] File count: denotes the file count stored for each device object/property.

[0581] <Read, Write, Notification Timing>

[0582] This property is always readable regardless of the transmission status.

[0583] The file count of this property is not changed when the transmission status is set to SENDING or WRITE-PROHIBIT.

[0584]FIG. 29 shows the properties related to the data transmission service.

[0585] (3) Send/Receive Settings

[0586] This property is for writing the transmission trigger and send/receive results from the reception-side node. These property values are reflected in the transmission status property when they are written.

[0587] <Parameter Description>

[0588] Normal completion=0×30 00: transmission is completed normally.

[0589] Forced termination=0×30 01: termination forced by reception-side node.

[0590] WRITE-PROHIBIT setting=0×30 10: prohibits writing this property from any node other than the reception-side node that wrote to this property. With this setting files are not sent to any node other than the reception-side node that wrote to this property.

[0591] Transmission start=0×30 20: starts the transmission process

[0592] <Read, Write, Notification Timing>

[0593] Writing to this property is immediately reflected in the transmission status property; if this property is set to START SENDING, the transmission status is set to SENDING; if set to WRITE-PROHIBIT, the transmission status is set to WRITE-PROHIBITED; otherwise the transmission status is set to READY. If the transmission status property is set to SENDING or WRITE-PROHIBITED, this property cannot be written by any node other than the reception-side node that set this property.

[0594] The transmission process can be interrupted by setting this property to COMPLETED NORMALLY or TERMINATED DUE TO ERROR during data transmission.

[0595] (3) Transmission Status

[0596] This property denotes the transmission status of the current instance, i.e., whether the instance is sending. If this property is set to SENDING, the transmission target information, transmission file information, and transmission data cannot be changed.

[0597] <Parameter Description>

[0598] READY=0: standby mode

[0599] WRITE-PROHIBITED=0×30 10: protects file transmissions to nodes other than the reception-side node that wrote to the send/receive setting property.

[0600] SENDING=0×30 20: transmission in progress

[0601] <Read, Write, Notification Timing>

[0602] This property is always readable.

[0603] The value written to the send/receive setting property is reflected in this property.

[0604] (4) Transmission Target Information

[0605] This property identifies the file that is actually sent from among the handled object information of the transmission objects. If the file-providing device object/property count of the handled object information is 1 and the file count is also 1, this property need not be used to identify the file.

[0606] <Parameter Description>

[0607] File-providing device object/property: device object/property information to be sent from the handled object information

[0608] File number: file number if multiple files are handled.

[0609] <Read, Write, Notification Timing>

[0610] For PUSH type transmission the transmission-side node reports to the reception-side node.

[0611] For PULL type transmission the reception-side node writes to the transmission-side node.

[0612] This property cannot be changed while the transmission status is SENDING.

[0613] This property can be read when the transmission status is SENDING or WRITE-PROHIBITED.

[0614] If the transmission status is not SENDING or WRITE-PROHIBITED, this property is read with no padding added to any values.

[0615] (5) Transmission File Information

[0616] This property defines the file name and attributes, date, byte size, and other information about the transmission target. This property enables getting information for selecting the files for transmission/reception for PULL type transmission/reception.

[0617] <Parameter Description>

[0618] Defines the filename, date, byte size of the file, and a check code.

[0619] Filename: filename of eight ASCII characters

[0620] Attributes: file attributes denoted with three ASCII characters

[0621] Date: file date in the format Y1Y2/MN/DD HH:MM:SS where

[0622] Y1=0×30 13−0×30 63 (19-99),

[0623] Y2=0×30 00−0×30 63 (00-99),

[0624] MN=0×30 01−0×30 0C (1-12),

[0625] DD=0×30 01−0×30 1F (1-31),

[0626] HH=0×30 00−0×30 17 (0-23),

[0627] MM=0×30 00−0×30 3B (0-59),

[0628] SS=0×30 00−0×30 3B (0-59).

[0629] If the file has no date, each date byte is set to 0.

[0630] File byte size: total number of bytes in the transmission file

[0631] Check code: twos complement of the total of each byte in the transmission file

[0632] <Read, Write, Notification Timing>

[0633] For PULL type transmission, the transmission-side node writes SENDING to the transmission state property from the reception-side node, and returns this property value to the reception-side node.

[0634] For PUSH type transmission, the transmission-side node changes the transmission state property to SENDING and then sends this property value to the reception-side node.

[0635] This property is not changed when the transmission status is SENDING.

[0636] This property is readable when the transmission status is SENDING or WRITE-PROHIBIT.

[0637] If the transmission status is not SENDING or WRITE-PROHIBITED, this property is read with no padding added to any values.

[0638] (6) Transmission Data

[0639] <Parameter Description>

[0640] Total array size: size of the array transmitted in segments

[0641] divisional size: byte length of each divided data. Except for the last array element where the total array size is 2 or more, the size of each divided data is the same, and (divisional size+6) is equal to the EDT size.

[0642] Divided data: the segmented data. The last array element is padded to the same EDT size as other arrays, and the divisional size and later data is not padded.

[0643] After the transmission file information report response of the reception-side node is received, the transmission data is sent from the transmission-side node.

[0644] If the transmission status is not SENDING, this property cannot be reported or read.

[0645] An exemplary sequence using the properties in FIGS. 27, 28, and 29 for achieving the data communication methods and procedures described in the fourth and fifth embodiments above is described next.

[0646] Using the change-instance class report in the startup sequence of each node, the device startup process running on the transmission-side device gets the address (EA) of the reception-side node for PUSH type file transmissions, and for PULL type file transmissions the reception-side gets the address (EA) of the transmission-side node.

[0647]FIG. 30 shows a sequence when the reception-side starts up before the transmission-side node.

[0648] <Process when the Reception-Side Node Starts First and the Transmission-Side Node Starts Later>

[0649] (1) Change Instance Class Report (Transmission-Side→Reception-Side)

[0650] A change instance class report is sent to the reception-side during the startup sequence. The reception-side node application receiving this report can get the address (EA) of the transmission-side node having a file transmission service object. (transmission-side node report service)

[0651] (2) Operation Status Report (Reception-Side→Transmission-Side)

[0652] If the reception-side node can receive files in the PUSH type, it receives the change instance class report and returns the operation status of the file reception service object. The transmission-side node application receiving this report can get the address (EA) of the reception-side node having a file reception service object. (reception-side node report service)

[0653]FIG. 31 is a sequence used when the transmission-side node starts up first and then the reception-side node starts up.

[0654] (1) Change Instance Class Report (Reception-Side→Transmission-Side)

[0655] A change instance class report is sent to the transmission-side node during the startup sequence. The application on the transmission-side node receiving this report can get the address (EA) of a device having a reception service object. (reception-side node report service)

[0656] (2) Operation Status Report (Transmission-Side→Reception-Side)

[0657] If the transmission-side node can send files in the PULL type, it receives the change instance class report and returns the operation status of the file transmission service object. The reception-side node application receiving this report can get the address (EA) of the transmission-side node having a file transmission-side service object. (transmission-side node report service)

[0658] In an autonomous communication process (PUSH type data communication) the transmission-side node requests the object information handled by the reception-side node for PUSH type reception, communicates the transmission target information as needed, sends the transmission file information, and then transmits the file by sending the divided data from the transmission-side node.

[0659]FIG. 32 shows a typical communication sequence for autonomous communication.

[0660] <Preprocess>

[0661] (1) Handled Object Information Request (Transmission-Side→Reception-Side)

[0662] The transmission-side node application sends to the reception service object of the reception-side node a read request for the object information handled for PUSH type reception. (handled object information request service) The file transfer service middleware of the transmission-side node could broadcast to all instances on the assumption that there are multiple reception service object instances on the reception-side node.

[0663] (2) Handled Object Information Response (Reception-Side→Transmission-Side)

[0664] After receiving the request, the reception-side node returns the handled object information for PUSH type reception. It should be noted that steps (1) and (2) above could be omitted.

[0665] <Transmission Process>

[0666] (3) Transmission Target Information Report (Transmission-Side→Reception-Side)

[0667] If there are multiple instances of handled object information for reception on the reception-side node, the transmission-side node application sends the transmission target information to identify the device object to which the data will be sent. This report is triggered by a request from the application to the file transfer service middleware. (file transmission request service)

[0668] (4) Send/Receive Setting Write Request (Reception-Side→Transmission-Side)

[0669] The reception-side node application receives the transmission target information report, and if it can receive the data to be sent issues a write request to set the send/receive setting of the transmission service object to START SENDING. If the data to be sent cannot or will not be acquired, the write request sets the send/receive setting to 0×30 01 (forced quit). (transmission setting write service)

[0670] (5) Transmission File Information Report (Transmission-Side→Reception-Side)

[0671] After the file transfer service middleware of the transmission-side node receives the START SENDING write request from the send/receive setting write request in step (4) above, it sends the size, checksum, and other transmission file information for the transmission file to the reception-side node. It also sets the transmission status property of the transmission service object used for file transmission to 0×30 20, denoting SENDING.

[0672] (6) Transmission File Information Report Response (Reception-Side→Transmission-Side)

[0673] The reception-side node responds to the transmission-side node.

[0674] (7) Divided Data Transmission (Transmission-Side→Reception-Side)

[0675] The transmission-side node divides the file and sends the divided data in a continuous stream to the reception-side node.

[0676] (8) Specific Divided Data Request (Reception-Side→Transmission-Side)

[0677] If there is a divided data that was not correctly received either after the last divided data is received or when a timeout (=1 minute) occurs while waiting for a divided data, the reception-side node sends a transmission request specifying the array element number of the desired divided data.

[0678] (9) Specified Divided Data Transmission (Transmission-Side→Reception-Side)

[0679] When the transmission-side node receives a request for a specific divided data from the reception-side node, it always sends the specified array element.

[0680] It should be noted that steps (8) and (9) above could be omitted.

[0681] (10) Transmission Completed Setting (Reception-Side→Transmission-Side)

[0682] If the file was correctly received or if the transmission process is terminated for some reason, the file transfer service middleware of the reception-side node sets the send/receive setting to 0×30 00denoting normal completion or to 0×30 01denoting a forced quit.

[0683] There are also cases in which the transmission completion setting is not set. The transmission-side node therefore inserts a timeout of one minute in the frame reception process waiting for a specified divided data request and transmission completion setting, and resets the transmission status property to 0×30 00denoting READY if the process times out.

[0684] It should be noted that the file transfer service middleware of the reception-side node assembles the multiple received divided data into a single file, and passes the assembled file with the file information obtained in the transmission file information report to the application. (file reception report service)

[0685] In a request/response communication process (PULL type data communication) the reception-side node requests the object information handled by the transmission-side node for PUSH type transmission, gets the transmission file information as needed, and then sends a START SENDING trigger. When the transmission-side node receives this trigger it sends the transmission file information for the specified target object, and then transmits the file as described in the PUSH type transmission process above.

[0686]FIG. 33 shows a typical communication sequence for request/response communication.

[0687] <Preprocess>

[0688] (1) Handled Object Information Request (Reception-Side→Transmission-Side)

[0689] The reception-side node application sends a read request for the handled object information for PULL type transmission to the transmission-side node. (handled object information request service) The reception-side node file transfer service middleware could broadcast to all instances on the assumption that there are multiple transmission service object instances on the transmission-side node.

[0690] (2) Handled Object Information Response (Transmission-Side→reception-side)

[0691] The transmission-side node receiving the request responds by sending the handled object information for PULL type transmission.

[0692] <File Information Collection Process>

[0693] (3) Transmission Status Request (Reception-Side→Transmission-Side)

[0694] The file transfer middleware of the reception-side node requests the transmission status from the transmission service object of the transmission-side node obtained by the handled object information request (1).

[0695] (4) Transmission Status Response (Transmission-Side→Reception-Side)

[0696] The transmission-side node sends a transmission status response to the reception-side node. If the transmission status is READY, the reception-side node sends a WRITE-PROHIBIT or START SENDING trigger.

[0697] (5) Write-Prohibit (Reception-Side→Transmission-Side)

[0698] To protect against a reception request from another node, a write request is asserted to write 0×02 denoting WRITE-PROHIBIT to the send/receive setting. In response to the write request, the transmission-side node sets the transmission status property to 0×02, WRITE-PROHIBIT. This write-prohibit is applied as needed.

[0699] After the send/receive setting property is set to 0×02, WRITE-PROHIBIT, the property must be set to 0×20 denoting START SENDING to start transmission or to COMPLETED.

[0700] After the write-prohibit request a 1-minute timeout is applied to all write requests from the reception-side node, and the transmission status is set to 0×00 denoting READY.

[0701] (6) Send/Receive Setting Write Response (Transmission-Side→Reception-Side)

[0702] The transmission-side node responds to the write request.

[0703] (7) Transmission Target Information Write Request (Reception-Side Transmission-Side)

[0704] A transmission target information write request is sent as needed.

[0705] (8) Transmission Target Information Write Response (Transmission-Side→reception-side)

[0706] A response to the write request is sent.

[0707] Note that the above steps (3) to (8) can be omitted.

[0708] (9) START SENDING Trigger (Reception-Side→Transmission-Side)

[0709] The file transfer service middleware of the reception-side node sends a START SENDING trigger to the transmission-side node by means of a write request to set the send/receive setting to 0×20, START SENDING. After receiving this trigger, the file transfer service middleware of the transmission-side node sets the transmission status property to 0×20, SENDING.

[0710] The steps following the transmission file information report are the same as the steps following the transmission file information report in the autonomous communication process.

[0711] The services related to the PUSH type file transmission shown in FIG. 32 that are services of the transmission-side node are described below.

[0712] (1) Reception-Side Node Report Service

[0713] This service reports the Echonet address of the reception-side node that is the destination device for PUSH type file transmission to the application. There is no input data and the response data is the Echonet address of the reception-side node.

[0714] (2) Handled Object Information Request Service

[0715] This service gets the object information handled for PUSH type reception by the reception-side node. The input data is the Echonet address of the reception-side node; response data is the object information handled for PUSH type reception.

[0716] (3) File Transmission Request Service

[0717] This service sets data in the file transmission object of the self-node and sends files in the PUSH type. Input data includes the name of the transmitted file, file attributes, file date, and a pointer to the transmission file, i.e., the transmission data. Response data is the transmission result denoting that transmission was completed or transmission failed.

[0718] Services related to PULL type transmission shown in FIG. 33 that are services of the transmission-side node are described below.

[0719] (1) Write-Prohibit Report Service

[0720] When WRITE-PROHIBIT is written from the reception-side node to the send/receive setting of the transmission-side node, this service reports the action to the application. There is no input data or response data.

[0721] (2) Transmission Target Information Report Service

[0722] When the transmission target information of the transmission-side node is written from the reception-side node, this service reports the written transmission target information to the application. There is no input data and the response data is the transmission target information.

[0723] (3) File Update Request Service

[0724] This service updates data in the file transmission object of the self-node. Updating is not possible if the transmission status of the file transmission object is set to WRITE-PROHIBIT or SENDING. Input data is the transmission target information, name of the transmitted file, file attributes, file date, and a pointer to the transmitted file, i.e., the transmission data. The response data is the transmission result, either update completed or update failed.

[0725] The services related to PUSH type file reception shown in FIG. 32 that are services of the reception-side node are described below.

[0726] (1) Transmission Target Information Report Service

[0727] When a transmission target information report is received from the transmission-side node sending files in the PUSH type, this service passes the received information to the application. There is no input data. The response data is the Echonet address of the transmission-side node and the transmission target information.

[0728] (2) Send/Receive Setting Write Request Service

[0729] When the transmission target information obtained by the transmission target information report service can be received, this service sends a START SENDING write request to the send/receive setting property of the file transmission service object of the transmission-side node. There is no input data or response data.

[0730] (3) File Reception Report Service

[0731] When receiving a file sent in the PUSH type from the transmission-side node is completed, this service reports the received file information to the application. There is no input data. The response data is the name of the transmitted file, file attributes, file date, and a pointer to the transmitted file, i.e., the transmission data.

[0732] Services related to PULL type file reception shown in FIG. 33 that are services of the reception-side node are described below.

[0733] (1) Transmission-Side Node Report Service

[0734] This services reports to the application the Echonet address of the transmission-side node that is the source for transmitting files in the PUSH type. There is no input data. The response data is the Echonet address of the transmission-side node.

[0735] (2) Handled Object Information Request Service

[0736] This service requests the object information handled for PULL type transmission from the file transmission object of the transmission-side node. The input data is the Echonet address on the transmission-side; response data is the object information handled for PULL type transmission.

[0737] (3) File Reception Request Service

[0738] This service requests the file transmission service object of the transmission-side node to send the specified file-provider object, properties, and file of the specified file number. The file transfer service middleware controls the sequence including confirming the transmission status of the transmission-side node, sending the START SENDING trigger, receiving the file, and writing the reception completion setting, and when file reception is completed this service returns RECEPTION COMPLETED. The input data is the Echonet address of the transmission source, transmission target information, and the write-prohibit setting, i.e., a flag declaring whether the send/receive setting of the transmission file service object is set to WRITE-PROHIBIT at the beginning of the reception process. The response data is the reception result indicating reception completed or reception failed.

[0739] (Embodiment 8)

[0740] Specific examples of properties for achieving a data communication method and procedure for transferring files between two terminals configured as shown in FIG. 1 are shown in FIG. 34, FIG. 35, and FIG. 36.

[0741]FIG. 34 shows properties related to the data reception service.

[0742] (1) Operation Status

[0743] Sets the operation of the file reception service function on or off, and gets the operation status. If operation is on (service provided), set to 0×30; if operation is off (service stopped), set to 0×31. If operation is off, access to other properties is not assured.

[0744]FIG. 45 shows the format of object information handled for PUSH type reception.

[0745] (2) Object Information Handled for PUSH Type Reception

[0746] This property denotes the information needed for PUSH type reception, including the maximum file byte size, file-providing device object, and properties. This property is required for PUSH type file reception. The values of the file storage device information in this property must not be duplicated in each instance.

[0747] <Parameter Description>

[0748] Maximum file byte size: maximum byte size of a push-receivable file after it is assembled

[0749] File information count: the number of file storage information objects for storing files that can be received in the PUSH type; maximum=40.

[0750] File storage information: combination of file storage device information (information about devices for storing files for PUSH type reception) and the number of files that can be received by each file storage device.

[0751] File storage device information: class group code, class code, and property code of a device for storing files

[0752] File count: denotes the number of files that can be received and stored per file storage device information object; 0−0×FFFE=number of files, 0×FFFF=no specific limit

[0753] (3) Data Division Information

[0754] This property denotes the maximum division data size that can be received. The transmission-side node compares the reported value of this property with the divisional size that it can transmit, then selects the smaller divisional size to divide and send the file.

[0755] <Parameter Description>

[0756] Denotes maximum EDT byte count that can be received.

[0757] <Read, Write, Notification Timing>

[0758] This property is read before the transmission-side node reports the transmission data.

[0759]FIG. 35 shows the properties related to the data transmission service.

[0760] (1) Operation Status

[0761] Sets the operation of the file transmission service function on or off, and gets the operation status. If operation is on (service provided), set to 0×30; if operation is off (service stopped), set to 0×31. If operation is off, access to other properties is not assured.

[0762]FIG. 46 shows the format of object information handled for PULL type transmission.

[0763] (2) Object Information Handled for PULL Type Transmission

[0764] This property denotes the information needed for PULL type file transmission, including the maximum file byte size, file-providing device object, and properties. The values of the file-providing device information in this property must not be duplicated in each instance.

[0765] This property is required for PULL type file transmission.

[0766] <Parameter Description>

[0767] Maximum file byte size: maximum byte size of a file before it is divided for PULL type transmission

[0768] File-provider information count: the number of file-provider information objects providing files for PULL type transmission; maximum=40.

[0769] File-provider information: stores information about the file-providing devices providing files for PULL type transmission, and the number of files that are stored for each file-providing device information object.

[0770] File-providing device information: combination of the class group code of a device providing files for PULL type transmission, class code, device object denoted by an instance code, and property code

[0771] File count: denotes the number of files stored per device object, property.

[0772] <Read, Write, Notification Timing>

[0773] The file count field of this property cannot be changed when the transmission status property is set to SENDING.

[0774]FIG. 36 shows properties related to the data transmission service.

[0775] (3) Send/Receive Setting

[0776] This property writes the transmission trigger and send/receive result from the reception-side node. This property is also reflected in the transmission status property when it is written.

[0777] <Parameter Description>

[0778] Normal termination=0×00: transmission ended normally

[0779] Forced termination=0×30 01: transmission was terminated unconditionally by the reception-side node

[0780] Start transmission=0×20: start the transmission process

[0781] <Read, Write, Notification Timing>

[0782] Writing to this property is reflected immediately in the transmission status property; if START SENDING is written to this property, the transmission status property is set to SENDING, and is otherwise set to READY. If the transmission status property is set to SENDING, this property can only be written by the reception-side node that wrote to this property.

[0783] The transmission process can be interrupted by writing COMPLETED or FORCED TERMINATION to this property during data transmission.

[0784] (4) Transmission Status

[0785] This property denotes the transmission status of the current instance, i.e., whether the transmission process is running. If this property is set to SENDING, the transmission file information property and the transmission data property cannot be changed.

[0786] <Parameter Description>

[0787] READY=0: standby

[0788] SENDING=0×20: transmission process is running

[0789] <Read, Write, Notification Timing>

[0790] The value written to the send/receive setting property is reflected in this property.

[0791] The transmission status can change to READY at the following times: (1) immediately after node startup, (2) immediately after the send/receive setting property is set to 0×00(normal termination) or 0×30 01(forced termination), (3) when transmission times out.

[0792] The transmission status property can change to SENDING at the following times: (1) immediately after the send/receive setting property is set to 0×20, START SENDING.

[0793]FIG. 47 shows the format of the transmission target information.

[0794] (5) Transmission Target Information

[0795] This property identifies the file-providing device information that is the object of the transmission process. In the PUSH type the transmission-side node indicates intent to send a file of the file-providing device denoted by this property by sending this property value to the reception-side node.

[0796] In the PULL type, the reception-side node writes to this property on the transmission-side node to ask the transmission-side node to reserve a file of the file-providing device. The transmission-side node receiving this request sends the property value to the reception-side node regardless of whether the file reservation succeeds or fails.

[0797] <Parameter Description>

[0798] File-providing device information: file-providing device information to be sent from the handled object information

[0799] File number: file number of the file-providing device information. File number assignments are dependent on the transmission-side node. However, if the file-providing device objects/properties are handled in an array, the file number is equivalent to an array element number.

[0800] <Read, Write, Notification Timing>

[0801] In PUSH type transmission this property is sent to the file reception service object of the reception-side node.

[0802] In PULL type transmission this property is written from the reception-side node.

[0803] When this write request message is received the transmission target information is returned to he file reception service object of the reception-side node. However, if writing is not successful, the transmission target information is returned with a file number of 0×FFFF.

[0804]FIG. 48 shows the format of the transmission file information.

[0805] (6) Transmission File Information

[0806] This property declares the name, attributes, date, byte size, and other information about the file to be transmitted. This property enables the file to be sent/received to be selected in PULL type transmission/reception.

[0807] <Parameter Description>

[0808] The name of the transmitted file, date, file byte size, and check code

[0809] Name: filename of eight ASCII characters. Filenames are filled from the front and empty spaces are padded with 0×00.

[0810] Attributes: file attributes of three ASCII characters. The file attributes is filled from the front and empty spaces are padded with 0×00.

[0811] Date: file date in the format Y1Y2/MN/DD HH:MM:SS where

[0812] Y1=0×13−0×30 63 (19-99),

[0813] Y2=0×00×30 63 (00-99),

[0814] MN=0×30 01−0×30 0C (1-12),

[0815] DD=0×30 01− x1F (1-31),

[0816] HH=0×00−0×30 17 (0-23),

[0817] MM=0×00−0×30 3B (0-59),

[0818] SS=0×00−0×30 3B (0-59).

[0819] If the file has no date, each date byte is set to 0. The date is invalid if Y1=0×00.

[0820] File byte size: total number of bytes in the transmission file

[0821] Check code: twos complement of the total of each byte in the transmission file

[0822] <Read, Write, Notification Timing>

[0823] If the send/receive setting property is written and the transmission status property is changed to SENDING, the transmission-side node sends this property value to the reception-side node.

[0824] If the value of the transmission target information property is not contained in the file-providing device object/property of the handled object information property for PULL type transmission, the file byte size of this transmission file information property is set to 0 and posted.

[0825]FIG. 49 shows the transmission data format.

[0826] (7) Transmission Data

[0827] This property is an array of the divided data in data division size generated from the transmitted file. The array elements must be transferred in a continuous stream.

[0828] <Parameter Description>

[0829] Array element number: The transmission file is divided according to the data divisional size. The divided data are then numbered consecutively from the beginning of the file. The data divisional numbers are used as the array element numbers.

[0830] Total array size: size of the entire array transferred in segments.

[0831] Data divisional size: byte length of each divided data. Except for the last array element where the total array size is 2 or more, the size of each divided data is the same, and (divisional size+6) is equal to the EDT size.

[0832] Divided data: the data of the divided file. The last array element is padded to the same EDT size as other arrays, and the divisional size and later data is not padded.

[0833] <Read, Write, Notification Timing>

[0834] After the transmission file information report response of the reception-side node is received, the transmission-side node sends the transmission data.

[0835] If the transmission status property is not SENDING, CANNOT RESPOND is returned.

[0836] A sequence using the properties shown in FIG. 34, FIG. 35, and FIG. 36 for achieving a data communication method and procedure for transferring files between two terminals configured as shown in FIG. 1 is described next. In this embodiment, the PUSH type is used as the method for sending a file by autonomous communication, the PULL type is used as the method for sending a file by request/response communication, and the respective file transfers are referred to PUSH type file transfer and PULL type file transfer.

[0837] Using the change-instance class report in the startup sequence of each node, the device startup process running on the transmission-side device gets the address (EA) of the reception-side node for PUSH type file transfers, and for PULL type file transfers the reception-side gets the address (EA) of the transmission-side node.

[0838]FIG. 37 shows a sequence for when the reception-side node starts up before the transmission-side node.

[0839] <Process when the Reception-Side Node Starts First and the Transmission-Side Node Starts Later>

[0840] (1) Change Instance Class Report (Transmission-Side→Reception-Side)

[0841] [Transmission Node Process]

[0842] Sends a change instance class report to the reception-side node according to the startup sequence.

[0843] [Reception Node Process]

[0844] When the file transfer service middleware of the reception-side node receives this message from the transmission-side node, it passes the address (EA) of the transmission-side node having a file transfer service object to the application. (transmission-side node report service) The reception-side node application manages the addresses (EA) of the transmission-side nodes.

[0845] (2) Operation Status Report (Reception-Side→Transmission-Side)

[0846] [Reception Node Process]

[0847] When the change instance class report (1) is received, the file transfer service middleware of the reception-side node must report the operation status of all file reception service objects that can receive files in the PUSH type to the transmission-side node. This report is required.

[0848] [Transmission Node Process]

[0849] When the file transfer service middleware of the transmission-side node receives this report message, it passes the address (EA) of the reception-side node having the file reception service object to the application (reception-side node report service). The transmission-side node application manages the addresses (EA) of the reception-side nodes.

[0850]FIG. 38 shows a sequence for when the transmission-side node starts up before the reception-side node.

[0851] <Process when the Transmission-Side Node Starts First and the Reception-Side Node Starts Later>

[0852] (1) Change Instance Class Report (Reception-Side→Transmission-Side)

[0853] [Reception Node Process]

[0854] Sends a change instance class report to the transmission-side node according to the startup sequence.

[0855] [Transmission Node Process]

[0856] When the file transfer service middleware of the transmission-side node receives this message from the reception-side node, it passes the address (EA) of the reception-side node having a file reception service object to the application. (reception-side node report service) The transmission-side node application manages the addresses (EA) of the reception-side nodes.

[0857] (2) Operation Status Report (Transmission-Side→Reception-Side)

[0858] [Transmission Node Process]

[0859] When the change instance class report (1) is received, the file transfer service middleware of the transmission-side node must report the operation status of all file transmission service objects that can send files in the PULL type to the reception-side node. This report is required.

[0860] [Reception Node Process]

[0861] When the file transfer service middleware of the reception-side node receives this report message, it passes the address (EA) of the transmission-side node having the file transmission service object to the application (transmission-side node report service). The reception-side node application manages the addresses (EA) of the transmission-side nodes.

[0862] For file transfers by autonomous communication from the transmission-side node, the handled object information for PUSH type reception property of the reception-side node is requested and the transmission target information property is passed as needed. Then after sending the transmission file information property, the target data is divided and sent to transfer the file.

[0863]FIG. 39 is a typical communication sequence for autonomous communication. FIG. 41 and FIG. 42 show examples of the messages used in the autonomous communication sequence.

[0864] <Preprocess>

[0865] (1) Handled Object Information Request (Transmission-Side→Reception-Side)

[0866] [Transmission Node Process]

[0867] The transmission-side node application sends a read request to the reception service object of the reception-side node to get the handled object information for PUSH type reception property. (handled object information request service) The file transfer service middleware of the transmission-side node can broadcast to the all instances on the assumption that there are multiple reception service objects on the reception-side nodes.

[0868] (2) Handled Object Information Response (Reception-Side→Transmission-Side)

[0869] [Reception Node Process]

[0870] The reception-side node receives the handled object information request (1) and all reception service objects of the reception-side nodes return the handled object information for PUSH type reception property.

[0871] [Transmission Node Process]

[0872] The file transfer service middleware of the transmission-side node receives the response message, stores the SEOJ in the message as the file transfer service object of the reception-side node linked to the handled object information, and returns a response to the handled object information request service to the application.

[0873] <Transmission Process>

[0874] (3) Transmission Target Information Report (Transmission-Side→Reception-Side)

[0875] [Transmission Node Process]

[0876] The transmission-side node application sets the transmission target information to the file transfer service middleware (get file report service). The file transfer service middleware of the transmission-side node then sends the transmission target information report to the reception-side node. (This is required.) The file transfer service middleware determines the SEOJ and DEOJ of the message at this time as follows.

[0877] SEOJ freely selects the file transfer service object as a communication port. Of the file transfer service objects for the reception-side nodes obtained in step (2), DEOJ selects an object that can handle file-providing device information received by the get-file report service.

[0878] [Reception Node Process]

[0879] The file transfer service middleware of the reception-side node stores the SEOJ in this message as the file transfer service object of the transmission-side node (transmission target information report service).

[0880] (4) START SENDING Trigger (Reception-Side→Transmission-Side)

[0881] [Reception Node Process]

[0882] The reception-side node application receives the transmission target information report and sets the result of determining if file reception is possible to the file transfer service middleware (file reception setting service). When receiving a file the file transfer service middleware of the reception-side node sends a START SENDING trigger for setting the send/receive setting property to 0×20 (denoting START SENDING) tot he file transfer service object at the source of the transmission target information report. If the file specified in the transmission target information cannot be acquired or is not acquired, the write request setting the send/receive setting property to 0×30 01 (denoting FORCED TERMINATION) is sent (required).

[0883] [Transmission Node Process]

[0884] The file transfer service middleware of the transmission-side node passes the result of writing to the send/receive setting property of the reception-side node to the application (file transmission setting report service). It should be noted that the file transfer service middleware of the transmission-side node writes the transmission status property according to the write data to the send/receive setting property (required).

[0885] (5) Transmission File Information Report (Transmission-Side→Reception-Side)

[0886] [Transmission Node Process]

[0887] The application on the transmission-side node gets the file transmission setting service and sets the transmission file and transmission file information to the file transfer service middleware (file transmission request service) The file transfer service middleware receiving this sends the transmission file information to the file reception service object of the reception-side node (required).

[0888] (6) Transmission File Information Report Response (Reception-Side→Transmission-Side)

[0889] [Reception Node Process]

[0890] The reception-side node returns a report response to the transmission-side node.

[0891] (7) Divided Data Transmission (Transmission-Side→Reception-Side)

[0892] [Transmission Node Process]

[0893] The transmission-side node file transfer service middleware receiving the transmission file information report response (6), divides the transmission file based on the defined data divisional size, specifies the address (EA) of the reception-side node and the file reception service object, and then consecutively sends the divided data in low to high array element number order (required).

[0894] (8) Specified Divided Data Request (Reception-Side→Transmission-Side)

[0895] [Reception Node Process]

[0896] If there is a divided data that was not correctly received, the file transfer service middleware of the reception-side node sends a transmission request specifying the array element number of the missing divided data to the transmission-side node.

[0897] (9) Specified Divided Data Transmission (Transmission-Side→Reception-Side)

[0898] [Transmission Node Process]

[0899] The transmission-side node middleware sends the divided data for the specific array element when the specified divided data request (8) is received from the reception-side node.

[0900] (10) Transmission Completion Setting (Reception-Side→Transmission-Side)

[0901] [Reception Node Process]

[0902] The file transfer service middleware of the reception-side node sets the send/receive setting property of the file transfer service object in the transmission-side node to 0×00 (normal completion) if the file was correctly received, and to 0×30 01(forced termination) if the transmission process was interrupted for any reason (required).

[0903] It should be noted that the reception-side node file transfer service middleware assembles a single file from the multiple divided data received in the divided data transmission step (7), and sends the assembled file together with the file information acquired from the transmission file information report (5) to the application (file reception setting service response).

[0904] The file transfer service middleware of the transmission-side node passes the transmission completion setting (10) (normal completion or forced termination) to the application when it is received from the reception-side node. If file reception failed, the application is so informed. (file transmission service response)

[0905] [Transmission Node Process]

[0906] When the transmission-side node receives the transmission completion setting from the reception-side node, it sets the transmission status property to 0×00 (READY).

[0907] Because there are also cases in which the transmission completion setting is not set, the transmission-side node inserts a timeout of one minute in the frame reception process waiting for a specific divided data request and transmission completion setting, and resets the transmission status property to 0×00 denoting READY if the process times out. It should be noted that the transmission-side node accepts resend requests from the reception-side node during this one-minute timeout period (required).

[0908] Furthermore, the file transfer service middleware of the transmission-side node passes the transmission completion setting (10) (normal completion or forced termination) to the application when it is received from the reception-side node. (file transmission service response)

[0909] If a file transmission request from the reception-side node is received in the request/response communication (PULL type data communication) process, the handled object information for PUSH type transmission property is requested from the transmission-side node and the transmission file information is confirmed. The transmission file information is then obtained if needed, and a START SENDING trigger is sent to the reception-side node. When this trigger is received the transmission-side node returns the transmission file information for the specified target object, and then proceeds with the same transmission processed used for PUSH type communication.

[0910]FIG. 40 shows a typical communication sequence for request/response communication, and FIGS. 43 and 44 show sample messages used in a request/response communication sequence.

[0911] <Preprocess>

[0912] (1) Handled Object Information Request (Reception-Side→Transmission-Side)

[0913] [Reception Node Process]

[0914] The reception-side node application sends a read request for the handled object information for PULL type transmission to the transmission-side node. (handled object information request service) The reception-side node file transfer service middleware could broadcast to all instances on the assumption that there are multiple transmission service object instances on the transmission-side node.

[0915] (2) Handled Object Information Response (Transmission-Side→Reception-Side)

[0916] [Transmission Node Process]

[0917] Receiving the handled object information request (1), transmission service objects of the transmission-side nodes return the handled object information for PULL type transmission property.

[0918] [Reception Node Process]

[0919] The file transfer service middleware of the reception-side node receives the response message, stores the SEOJ in the message as the file transfer service object of the transmission-side node linked to the handled object information, and returns a response to the handled object information request service to the application.

[0920] <Transmission Process>

[0921] The reception-side node application transfer the file through the following sequence by sending a file reception request to the file transfer service middleware.

[0922] (3) Transmission Target Information Write Request (Reception-Side→Transmission-Side)

[0923] [Reception Node Process]

[0924] To reserve a file from the file-providing device of the transmission-side node, the reception-side node application sets the address (EA) of the reception-side node for the reserved file and the transmission target information to the file transfer service middleware (file reservation service). The file transfer service middleware receiving this request sends a transmission target information property write request to the file transfer service object of the transmission-side node (required).

[0925] The file transfer service middleware then determines the SEOJ and DEOJ values of the write request message as follows.

[0926] SEOJ freely selects the file transfer service object as a reception port. Of the file transfer service objects for the transmission-side nodes obtained in step (2), DEOJ selects an object that can handle the file-providing device information received by the file reservation service.

[0927] [Transmission Node Process]

[0928] When the file transfer service middleware of the transmission-side node receives the transmission target information write request message, it stores the SEA, SEOJ, and DEOJ values in the message as the address (EA) of the reception-side node, file reception service object, and its own file transfer service object.

[0929] Furthermore, it issues and sends a file reservation number with the transmission target information to the application (transmission target information report service). The reservation number is uniquely assigned for the SEA, SEOJ, DEOJ combination. The transmission-side node application gets the transmission target information report service, reserves the file specified by the device object and properties specified in the transmission target information, and manages the file in conjunction with the reservation number received in the transmission target information report service. If consecutive transmission target information report service having the same reservation number are received, only the last received service is valid. The reserved file is destroyed after a timeout passes. The timeout is application-dependent.

[0930] (4) Transmission Target Information Report (Transmission-Side→Reception-Side)

[0931] [Transmission Node Process]

[0932] The file transfer service middleware of the transmission-side node checks if the transmission target information written by the transmission target information write request (3) is contained in the file-providing device information of the handled object information for PULL type transmission property of the file transfer service object. If it is (the transmission target information is appropriate), the transmission target information is returned; if it is not (the transmission target information is not appropriate), or of it is (the transmission target information is appropriate) but the file cannot be reserved, transmission target information with the file number set to 0×FFFF is returned (required).

[0933] [Reception Node Process]

[0934] The file transfer service middleware of the reception-side node gets this report and then returns a response to the application (file reservation service response).

[0935] (5) Transmission Status Request (Reception-Side→Transmission-Side)

[0936] [Reception Node Process]

[0937] If the reception-side node application knows from the file reservation service response that the transmission-side node was able to reserve the file, it tells the file transfer service middleware that a file will be received (file reception setting service).

[0938] The file transfer service middleware of the reception-side node then requests the transmission status property from the file transfer service object of the transmission-side node acquired by the handled object information request (1).

[0939] (6) Transmission Status Response (Transmission-Side→Reception-Side)

[0940] [Transmission Node Process]

[0941] A response to the read request is sent.

[0942] (7) START SENDING Trigger (Reception-Side→Transmission-Side)

[0943] [Reception Node Process]

[0944] When the file reception service or a transmission status response of READY is received, the file transfer service middleware sends to the file transfer service object of the transmission-side node a START SENDING trigger writing 0×20 (START SENDING) to the send/receive setting property (required).

[0945] [Transmission Node Process]

[0946] The file transfer service middleware of the transmission-side node gets the START SENDING trigger from the reception-side node and changes the transmission status property to 0×20 (SENDING) (required). It also finds the file reservation number from the SEA, SEOJ, DEOJ in the START SENDING trigger message, and passes the reservation number to the application (file transfer setting report service).

[0947] The sequence after the transmission file information report is the same as the steps after the transmission file information report in request/response communication.

[0948] Services related to PUSH type file transmission that are services of the transmission-side node shown in FIG. 39 are described below.

[0949] (1) Reception-Side Node Report Service

[0950] This service reports the Echonet address of the reception-side node that is the destination device for PUSH type file transmission to the application.

[0951] The input data is the Echonet address of the reception-side node and there is no response data.

[0952] (2) Handled Object Information Request Service

[0953] This service gets the object information handled for PUSH type reception by the reception-side node. The input data is the Echonet address of the reception-side node; response data is the object information handled for PUSH type reception.

[0954] (3) Get File Report Service

[0955] The reception-side node is requested to report the transmission target information property. Input data is the transmission target information; there is no response data.

[0956] (4) File Transmission Setting Report Service

[0957] The application is notified that there was a send/receive setting write request from the reception-side node. Input data is the send/receive setting information indicating the start of transmission or force termination; there is no response data.

[0958] (5) File Transmission Request Service

[0959] Data is set to the file transfer service object of the self-node and the file transfer process is run. The input data is the name of the transmitted file, attributes, date, file byte size, and pointer to the transmitted file. Response data is the transmission result (transmission completed or transmission failed).

[0960] The services related to PUSH type file reception shown in FIG. 39 that are services of the reception-side node are described below.

[0961] (1) Transmission Target Information Report Service

[0962] When the transmission target information property is reported from the transmission-side node running PUSH type file transmission, the received data is passed to the application. The input data is the Echonet address of the transmission-side node and the transmission target information; there is no response data.

[0963] (2) File Reception Setting Service

[0964] When the transmission target information gotten by the transmission target information report service can be received, a START SENDING trigger write request is sent to the send/receive setting property of the transmission-side node file transfer service object, and the file is received. The input data is the send/receive setting, transmission source Echonet address, file-providing device information, and file number. The response data is the reception result, filename, attributes, date, file byte size, and pointer to the received file.

[0965] The services related to the PULL type file transmission shown in FIG. 40 that are services of the transmission-side node are described below.

[0966] (1) Transmission Target Information Report Service (File Reservation)

[0967] If the transmission target information property of the transmission-side node is written from the reception-side node, the written transmission target information property values are passed to the application. The input data is the reservation number of the registered transmission target information and the transmission target information; there is no response data.

[0968] (2) File Transmission Setting Report Service

[0969] This service tells the application when a START SENDING trigger is received from the reception-side node. Input data is the reservation number and send/receive setting (indicating START SENDING or forced termination); there is no response data.

[0970] (3) File Transmission Request Service

[0971] This service sets the data to the file transfer object of the self-node and then sends the file. Input data is the reservation number, name of the transmitted file, attributes, date, file byte size, and pointer to the transmission file. Response data is the transmission result denoting transmission completion or failure.

[0972] The services shown in FIG. 40 relating to the PULL type file reception that are services of the reception-side node are described next.

[0973] (1) Transmission-Side Node Report Service

[0974] This service sends the Echonet address of the transmission-side node that is the transmission source for the sending files in the PUSH type to the application. Input data is the Echonet address of the transmission-side node; there is no response data.

[0975] (2) Handled Object Information Request Service

[0976] Requests the handled object information for PULL type transmission property from the file transmission object of the transmission-side node. Input data is the Echonet address of the transmission-side node, and the response data is the handled object information for PULL type transmission.

[0977] (3) File Reservation Service

[0978] Reserves the specified file-providing device object, properties, and file of the specified file number with the file transfer service object of the transmission-side node for transmission. The file transfer service middleware writes the specified information to the transmission-side node by means of a transmission target information write request, and gets the transmission target information report from the transmission-side node. Input data is the Echonet address of the transmission-side node and transmission target information. Response data is the reservation result, i.e., whether the reservation is confirmed or reservation failed.

[0979] (4) File Reception Setting Service

[0980] Requests the file transfer service object of the transmission-side node to send the file reserved by the file reservation service. The file transfer service middleware controls the sequence of confirming the transmission status of the transmission-side node, sending the START SENDING trigger, receiving the file, and setting the reception completion result, and returns RECEPTION COMPLETED when file reception is completed. Input data is the send/receive setting denoting if reception is permitted or reception is not possible, the Echonet address of the transmission source, and the transmission target information. The response data is the reception result (reception completed or reception failed), the name of the received file, attributes, date, file byte size, and pointer to the received file.

[0981] It should be noted that if the communication device is a controller, for example, that communicates with multiple terminal devices, the communication device could store multiple data communication function tables so that communication parameters common to the one communication device and multiple terminal devices can be stored once and later used for subsequent data communication.

[0982] Furthermore, it will be obvious that a recording medium storing a program implementing the data communication method of the invention should be any kind of computer-readable medium, including ROM, RAM, floppy disk, CD-ROM, DVD, memory card, or hard disk.

[0983] Further, communication medium of the invention also extends to such communication media as telephone lines and other carriers.

[0984] Although the present invention has been described in connection with the preferred embodiments thereof with reference to the accompanying drawings, it is to be noted that various changes and modifications will be apparent to those skilled in the art. Such changes and modifications are to be understood as included within the scope of the present invention as defined by the appended claims, unless they depart therefrom. 

What is claimed is:
 1. A data communication method for communicating data between two or more communication devices connected to a network, comprising: a data communication function table for storing functions relating to data communication disposed in memory in the communication devices; and a data communication control unit; wherein data is communicated between the communication devices by the data communication control unit which reads and writes to the data communication function table.
 2. A data communication method according to claim 1, wherein the data communication function table contains a code denoting a data type that can be transmitted or a data type that can be received.
 3. A data communication method according to claim 1, wherein the data communication function table has a field denoting an autonomous communication function.
 4. A data communication method according to claim 1, wherein the data communication function table has a field denoting a request/response communication function.
 5. A data communication method according to claim 1, wherein the data communication function table has a field for denoting a divisional size enabling maximum data communication efficiency.
 6. A data communication method according to claim 2, wherein the code denoting the data type that can be transmitted or data type that can be received indicates a function of a device having this data communication function.
 7. A recording medium for a data communication method storing a program enabling a computer to run a data communication method according to claim
 1. 8. A computer-executable program enabling a computer to execute a data communication method according to claim
 1. 